上一篇拆了目录结构(QMT 客户端里其实装了两个 Python),这篇是它的直接应用:把两套环境的第三方库逐个版本对了一遍。
结论先行——3.12 是 3.6 的现代化版本,核心量化栈齐全且新得多;但 3.6 独有深度学习和 Jupyter 全家桶,3.12 独有 pyarrow 这类新依赖。真正会咬人的不是”少了哪个库”,而是 pandas 从 0.22 跨到 3.0 的那道坎。
本文列出了主要的差异,完整版的差异对比,请见https://pan.quark.cn/s/62af0da5bff1
一、删掉的和新增的库
3.6 独有(3.12 没装)
| 库 | 版本 | 说明 |
|---|---|---|
| tensorflow | 1.8.0 | 深度学习。3.12 未装,需要可另装新版 |
| torch | 1.0.1 | 同上 |
| tensorboard / astor / gast / absl-py | — | TF 的配套依赖,随之存在 |
| jupyter / notebook / ipython 全家桶 | notebook 5.7.8 等 15+ 项 | QMT 内置 Notebook 研究环境 |
| cvxopt | 1.2.5 | 旧凸优化求解器,3.12 改用 osqp/highspy/clarabel |
| tables (PyTables) | 3.6.1 | HDF5 读写 |
| numexpr | 2.7.0 | 表达式加速 |
| redis / pymongo / pymssql | 3.5.3 / 3.11.3 / 2.1.4 | 数据库客户端 |
| grpcio / protobuf | 1.12.1 / 3.5.2 | RPC 通信 |
3.12 独有
| 库 | 版本 | 说明 |
|---|---|---|
| pyarrow | 23.0.1 | 列式存储 / Feather 加速,pandas 3.x 的现代数据后端 |
| pyyaml | 6.0.3 | YAML 解析 |
| osqp / highspy / clarabel / qdldl | — | 新一代凸优化求解器,替代 cvxopt |
| pytz 2026.1 + tzdata | — | 时区库已是最新 |
| cffi 2.0、packaging 26.0 | — | 现代 pip 生态的基础依赖 |
二、能力矩阵:一眼看清取舍
| 能力 | 3.6 | 3.12 |
|---|---|---|
| 行情 / 交易(xtquant) | ✅ | ✅(同版本) |
| 数据处理 / 回测 | ✅(旧 API) | ✅(新 API,性能更强) |
| 传统机器学习(sklearn) | ✅ 0.23 | ✅ 1.8 |
| 深度学习(TF / PyTorch) | ✅ | ❌ 未装(可补) |
| Jupyter 研究环境 | ✅ | ❌ 未装 |
| 数据库客户端(Redis/Mongo/MSSQL) | ✅ | ❌ 未装(可 pip 补) |
| 现代求解器(OSQP / HiGHS) | ❌ | ✅ |
| pip 装新包 | ❌ 越来越难 | ✅ 生态完整 |
最后一行需要说清楚:Python 3.6 在 2021 年底就 EOL 了,现在 PyPI 上大量包不再提供 3.6 的安装包。留在 3.6 不是”稳定”,是”冻结”——不会坏,但也不会有新东西。
三、核心量化库:版本对照
| 库 | 3.6 环境 | 3.12 环境 | 跨度 | 差异等级 |
|---|---|---|---|---|
| pandas | 0.22.0(2017 年末) | 3.0.2 | 跨 3 个大版本 + 8 年 | 🔴 极大,API 大改 |
| numpy | 1.19.1 | 2.4.4 | 1.x → 2.x | 🔴 大,2.0 有破坏性变更 |
| scipy | 1.5.2 | 1.17.1 | 跨 12 个大版本 | 🟡 中 |
| scikit-learn | 0.23.2 | 1.8.0 | 0.x → 1.x | 🟡 中 |
| matplotlib | 3.0.3 | 3.10.8 | 跨 10 个小版本 | 🟢 小 |
| statsmodels | 0.12.1 | 0.14.6 | 小 | 🟢 小 |
| TA-Lib | 0.4.17 | 0.6.8 | 大改版 | 🟡 中 |
| cvxpy | 0.4.11 | 1.5.4 | 0.x → 1.x | 🟡 中,接口重组 |
| requests | 2.24.0 | 2.33.1 | 小 | 🟢 小 |
| xlrd | 1.2.0 | 2.0.2 | 2.0 只支持 .xls | 🟡 中 |
| xtquant | 250807.1.2 | 250807.1.2 | 完全相同 | ✅ 一致 |
最后一行最值得注意:QMT 官方 API 在两套环境里版本完全一致。也就是说行情、交易这些接口的调用代码,两边写法相同——你不用担心升级之后 passorder 变了。变量全在数据处理这一层。
一个补充:包数量的口径
扫描时看到两个数字容易混:3.6 的 site-packages 约 100 个包,3.12 的目录项约 140 个。后者看着更多,但实际发行包只有 60 个左右——因为每个包装完之后会带 .dist-info 目录,现代 pip 还多一层,所以目录项数差不多是发行包数的两倍多一点。3.6 那边包数虽多,是因为带了 Jupyter 全家桶、TF 和一堆数据库客户端。
换句话说:3.12 是精简过的现代栈,不是缩水版。 该有的量化依赖都在,砍掉的是 2018 年那批顺带装进来的东西。
本文列出了主要的差异,完整版的差异对比,请见https://pan.quark.cn/s/62af0da5bff1
免责声明
- 本文为编程技术研究内容,不构成任何投资建议、荐股意见或收益承诺。
- 所有版本号来自本人本机某券商客户端的实际扫描,不同券商、不同客户端版本所附库的版本可能不同,请以自己环境打印出的
pip list为准。 - 升级、换版本前请先备份策略代码与配置;在模拟环境验证通过后再用于实盘。
- 未经模拟测试直接实盘导致的损失由使用者自行承担。
- 本文内容按”现状”提供,不保证适用于所有客户端版本;库的 API 变更以各库官方文档为准。