QUANTAXIS 2.0 → 2.1 迁移指南
版本: 从 c1e609d (2.0.x) 升级到 2.1.0-alpha2 更新日期: 2025-10-25 作者: @yutiansut @quantaxis
📋 快速摘要
✅ 兼容性保证
100% 代码向后兼容 - 任何在 2.0.x 上运行的代码,在 2.1.0 上无需修改即可运行。
API兼容性
✅ 100%
所有现有API保持不变
代码兼容性
✅ 100%
现有代码无需修改
功能兼容性
✅ 100%
所有功能正常工作
⚠️ 环境要求变更
Python
3.5-3.10
3.9-3.12
⚠️ 需升级
pymongo
3.11.2
4.10.0+
⚠️ 需升级
pandas
1.1.5+
2.0.0+
⚠️ 需升级
pika
1.3.0
1.3.2+
⚠️ 需升级
🚀 迁移步骤
1. 环境准备
# 检查Python版本
python --version
# 需要 >= 3.9
# 如果版本过低,升级Python (Ubuntu示例)
sudo apt update
sudo apt install python3.112. 备份现有环境
# 备份requirements
pip freeze > requirements_backup.txt
# 备份数据 (如使用Docker)
docker-compose exec mongodb mongodump --out=/backup/pre-upgrade
# 备份代码
git stash
git tag pre-2.1-upgrade3. 升级QUANTAXIS
# 卸载旧版本
pip uninstall quantaxis -y
# 安装2.1.0
pip install quantaxis==2.1.0a2
# 验证版本
python -c "import QUANTAXIS as QA; print(f'版本: {QA.__version__}')"
# 输出: 版本: 2.1.0.alpha24. 测试现有代码
# 运行现有代码,应该无需修改
python your_existing_strategy.py
# 如有问题,查看下方常见问题部分🆕 新功能 (可选使用)
1. 资源管理器
自动管理数据库连接,避免资源泄漏
# 旧写法 (仍然有效)
from QUANTAXIS.QAUtil.QASql import QA_util_sql_mongo_setting
client = QA_util_sql_mongo_setting()
# 需要手动关闭: client.close()
# 新写法 (推荐,自动关闭)
from QUANTAXIS import QAMongoResourceManager
with QAMongoResourceManager() as mongo:
db = mongo.get_database('quantaxis')
result = db.stock_day.find_one({'code': '000001'})
# 自动关闭,无泄漏2. Context Manager支持
RabbitMQ连接支持with语句
from QUANTAXIS.QAPubSub.base import base_ps
# 旧写法 (仍然有效)
ps = base_ps()
# 使用ps...
ps.close()
# 新写法 (推荐)
with base_ps() as ps:
# 使用ps...
pass
# 自动优雅关闭3. 便捷导入
QAMarket组件可从主模块导入
# 旧写法 (仍然有效)
from QUANTAXIS.QAMarket.QAOrder import QA_Order
from QUANTAXIS.QAMarket.QAPosition import QA_Position
# 新写法 (可选,更简洁)
from QUANTAXIS import QA_Order, QA_Position4. Rust高性能组件 (可选)
安装Rust组件获得100x性能提升
# 安装Rust组件 (可选)
pip install quantaxis[rust]# 使用Rust加速的账户
from QUANTAXIS import QARSAccount
account = QARSAccount("account_id", init_cash=100000.0)
# 性能提升100x!🔍 兼容性验证
自动验证脚本
运行官方验证脚本确认兼容性:
cd /path/to/QUANTAXIS
python scripts/verify_compatibility.py预期输出:
✅ 总测试数: 26
✅ 通过数: 26
✅ 成功率: 100.0%
✅ 兼容性评级: A+ (完美)核心API测试
# 测试MongoDB连接
from QUANTAXIS.QAUtil.QASql import QA_util_sql_mongo_setting
client = QA_util_sql_mongo_setting()
client.admin.command('ping') # 应该成功
client.close()
# 测试RabbitMQ连接
from QUANTAXIS.QAPubSub.base import base_ps
ps = base_ps()
ps.close() # 应该成功
# 测试数据获取
import QUANTAXIS as QA
df = QA.QA_fetch_stock_list() # 应该成功⚠️ 已知问题
1. Python版本过低
问题: 运行时提示 "Python 3.9+ required"
解决:
# Ubuntu/Debian
sudo apt install python3.11
# CentOS/RHEL
sudo yum install python311
# macOS
brew install [email protected]
# Windows
# 从python.org下载安装3.11+2. pymongo版本冲突
问题: ImportError: cannot import name 'MongoClient'
解决:
pip uninstall pymongo -y
pip install pymongo>=4.10.03. pandas警告
问题: DeprecationWarning: DataFrame.append is deprecated
说明: 这是警告不是错误,代码仍可运行。如需消除警告:
# 旧写法 (有警告但仍可用)
df = df.append({'A': 1}, ignore_index=True)
# 新写法 (无警告)
import pandas as pd
df = pd.concat([df, pd.DataFrame({'A': [1]})], ignore_index=True)📈 性能提升
Rust组件 (可选安装)
账户操作
QIFI_Account
QARSAccount
100x
DataFrame转换
pl.from_pandas()
convert_pandas_to_polars()
2.5x
跨进程通信
pickle
SharedMemoryWriter
7x
安装Rust组件
# 完整安装 (包括Rust组件)
pip install quantaxis[rust]
# 或分别安装
pip install qars3>=0.0.45
pip install qadataswap>=0.1.0🛠️ 故障排查
问题: 导入QUANTAXIS失败
# 检查安装
python -c "import QUANTAXIS; print(QUANTAXIS.__version__)"
# 如果失败,重新安装
pip uninstall quantaxis -y
pip install quantaxis==2.1.0a2 --no-cache-dir问题: 数据库连接失败
# 检查MongoDB连接
from QUANTAXIS.QAUtil.QASql import QA_util_sql_mongo_setting
try:
client = QA_util_sql_mongo_setting()
client.admin.command('ping')
print("✅ MongoDB连接正常")
except Exception as e:
print(f"❌ MongoDB连接失败: {e}")问题: 性能下降
可能原因:
未启用Rust组件 → 安装
pip install quantaxis[rust]Python版本过低 → 升级到3.11+
依赖版本过低 → 升级pymongo, pandas等
📚 相关文档
💡 最佳实践
1. 渐进式迁移
# 1. 在测试环境先验证
pip install quantaxis==2.1.0a2 # 测试环境
# 2. 运行完整测试套件
pytest tests/
# 3. 确认无问题后,生产环境升级2. 使用新功能
# 1. 先使用基础功能验证兼容性
import QUANTAXIS as QA
# ... 运行现有代码 ...
# 2. 逐步采用新功能
from QUANTAXIS import QAMongoResourceManager
# ... 使用资源管理器 ...
# 3. 最后尝试Rust加速 (可选)
from QUANTAXIS import QARSAccount
# ... 使用Rust加速 ...3. 监控性能
import time
# 测量关键操作性能
start = time.time()
# ... 你的代码 ...
print(f"耗时: {time.time() - start:.3f}秒")
# 对比2.0.x和2.1.0的性能✅ 验证清单
迁移完成后,确认以下项目:
🎯 总结
迁移难度: ⭐☆☆☆☆ (非常简单)
核心要点:
✅ 代码100%向后兼容,无需修改
⚠️ 仅需升级Python和部分依赖
✅ 新功能为可选,渐进式采用
🚀 可选的Rust组件提供显著性能提升
推荐行动:
备份现有环境
升级Python到3.9+
升级QUANTAXIS到2.1.0
运行现有代码验证
(可选) 尝试新功能
(可选) 安装Rust组件
完成日期: 2025-10-25 验证状态: ✅ 100%兼容性验证通过 作者: @yutiansut @quantaxis
如有问题,请查看 故障排查文档 或提交 GitHub Issue
Last updated
Was this helpful?