53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
vn.py 4.x 兼容性修复脚本
|
|
"""
|
|
|
|
import os
|
|
import re
|
|
|
|
def fix_vnpy_imports(file_path):
|
|
"""修复文件中的vn.py导入"""
|
|
with open(file_path, 'r', encoding='utf-8') as f:
|
|
content = f.read()
|
|
|
|
# 替换规则
|
|
replacements = [
|
|
(r'from vnpy\.app\.', 'from vnpy_'),
|
|
(r'import vnpy\.app\.', 'import vnpy_'),
|
|
(r'vnpy\.app\.cta_strategy', 'vnpy_ctastrategy'),
|
|
(r'vnpy\.app\.cta_backtester', 'vnpy_ctabacktester'),
|
|
(r'vnpy\.app\.data_manager', 'vnpy_datamanager'),
|
|
(r'vnpy\.app\.rpc_service', 'vnpy_rpcservice'),
|
|
(r'vnpy\.app\.algo_trading', 'vnpy_algotrading'),
|
|
]
|
|
|
|
fixed_content = content
|
|
for pattern, replacement in replacements:
|
|
fixed_content = re.sub(pattern, replacement, fixed_content)
|
|
|
|
if fixed_content != content:
|
|
# 备份原文件
|
|
backup_path = file_path + '.backup'
|
|
os.rename(file_path, backup_path)
|
|
|
|
# 写入修复后的文件
|
|
with open(file_path, 'w', encoding='utf-8') as f:
|
|
f.write(fixed_content)
|
|
|
|
print(f"✅ 已修复: {file_path}")
|
|
print(f" 备份: {backup_path}")
|
|
return True
|
|
else:
|
|
print(f"✅ 无需修复: {file_path}")
|
|
return False
|
|
|
|
# 使用示例
|
|
if __name__ == "__main__":
|
|
# 修复当前目录下的Python文件
|
|
for root, dirs, files in os.walk('.'):
|
|
for file in files:
|
|
if file.endswith('.py'):
|
|
file_path = os.path.join(root, file)
|
|
fix_vnpy_imports(file_path)
|