期货量化环境装不上怎么办:天勤 TqSdk 安装与 Python 版本排查

前言

带同事入门期货程序化时,卡在环境上的时间往往比写策略还长:Python 版本不对、pip install tqsdk 超时、第一次 import tqsdk 报错,有人就直接放弃。我这些年装过不少机器,从本机 Windows 到 Linux 云主机,天勤 TqSdk 本身依赖不算重,但前提是把 Python 版本、镜像源和示例路径这三件事先对齐。

下面按「安装前检查 → pip 安装 → 首次 import 验证 → 示例在哪 → 常见报错」写一套可照着做的流程。代码只放在必须落地的验证环节,其余用清单说明,方便你少踩坑、尽快跑到 get_quote 那一步。

一、安装前先确认 Python 版本

TqSdk 对 Python 版本有要求,以你安装时官方 intro.rstquickstart.rst 写的为准。实操里常见问题是:系统里同时有 Python 3.8 和 3.11,终端里 python 指向旧版,pip 却装到了另一个环境。

建议在项目目录建虚拟环境,避免和全局包冲突:

text 复制代码
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux / macOS
source .venv/bin/activate
python -V
pip -V

python -V 打印的版本应在官方支持范围内。若版本不符,先换 Python 再装 TqSdk,不要强行升级已跑通的旧策略环境,除非你愿意整包回归测试。

二、pip 安装与国内镜像

默认 pip install tqsdk 在部分网络下会很慢或中断。国内环境可临时指定镜像,例如:

bash 复制代码
pip install tqsdk -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后用 pip show tqsdk 看版本号,建议在新项目里把版本写进 requirements.txt,避免同事机器上各装各的导致 API 行为不一致。

步骤 做什么 通过标准
1 激活虚拟环境 which python 指向 venv
2 pip install tqsdk 无报错结束
3 pip show tqsdk 能看到版本与路径
4 python -c "import tqsdk" 无 ImportError

三、首次 import 与最小连通

环境装妥后,不要立刻跑复杂策略。先确认包能导入、认证类能构造(账户密码换成你自己的快期账户):

python 复制代码
from tqsdk import TqApi, TqAuth, TqSim

api = TqApi(TqSim(), auth=TqAuth("账户", "密码"))
q = api.get_quote("SHFE.rb2510")
while True:
    api.wait_update()
    if api.is_changing(q, "datetime"):
        print(q.datetime, q.last_price)
        break
api.close()

若这里能持续打印时间和最新价,说明安装、认证、行情订阅三条链都通了。若 import 就失败,把完整报错贴出来对照下一节,不要先改策略逻辑。

四、官方示例在哪里

很多人装好后不知道示例代码在哪。安装包内一般有 demo 目录,路径类似:

text 复制代码
site-packages/tqsdk/demo/

可在 Python 里查:

python 复制代码
import tqsdk, os
print(os.path.dirname(tqsdk.__file__))

把该目录下的 strategy、快速入门相关脚本复制到自己的项目里改,比在网页上零散抄片段更不容易漏 wait_update。IDE 里若配置了错误的解释器,会出现「编辑器里红线但命令行能跑」的假象,解释器应选虚拟环境里的 Python。

五、常见安装与启动报错

ImportError / ModuleNotFoundError

多半是未激活 venv,或 pip 装到了别的 Python。用 python -m pip install tqsdk 确保和运行脚本的是同一个解释器。

认证或连接类报错

安装本身没问题,是 TqAuth 账户密码、网络或权限。先区分「包没装上」和「连不上服务器」,后者按快期账户文档排查,不要反复重装 TqSdk。

Windows 路径含中文

个别环境下工作目录或用户名含中文会导致日志、配置读写异常,项目路径尽量用英文。

Linux 服务器缺依赖

极少见缺少系统库,按报错搜索;多数情况仍是 Python 版本或防火墙出站限制。

总结

天勤 TqSdk 环境问题的关键,是把 Python 版本、虚拟环境、pip 安装和首次 get_quote 验证分开做,一步通过再进入策略开发。安装阶段不必追求最新版 Python,而要追求与文档一致、与团队 requirements.txt 一致。

建议在全新目录按本文走通最小脚本后,再拷贝历史策略;换电脑或上云主机时,重复「venv → pip → import → 一行行情」四步,比直接跑大策略更容易定位是环境还是代码问题。

FAQ

1)必须用 Anaconda 吗?

不必,官方示例以 pip + 标准 venv 为主;若你用 Conda,确保创建的环境 Python 版本符合要求即可。

2)升级 TqSdk 后旧代码报错?

先看 version.rst 变更说明,在模拟盘跑官方 demo 再回归自己的策略。

3)公司内网 pip 不可用?

用内网 PyPI 镜像或离线 wheel 包,由运维统一分发版本。

4)Jupyter 里装好了但内核不对?

Notebook 要选对应 venv 的 kernel,否则仍是旧环境。

风险提示

本文用于期货量化技术环境配置说明,不构成投资建议。账户与网络策略请按机构安全规范执行。

相关推荐
影寂ldy1 小时前
C# 多态与函数重载(静态多态)
开发语言·c#
SilentSamsara1 小时前
Python 与 Docker:多阶段构建、最小镜像与健康检查
运维·开发语言·python·docker·中间件·容器
变量未定义~1 小时前
快速幂、费马小定理、约数的个数、欧拉函数模板、矩阵快速幂
开发语言
hyunbar1 小时前
NOT IN 的 NULL 陷阱:一次 UNION 数据“神秘消失“
开发语言·sql
C+++Python1 小时前
如何在 Java 中使用 BIO、NIO 和 AIO?
java·开发语言·nio
哈泽尔都1 小时前
运动控制教学——5分钟学会力控算法(阻抗/导纳/力位混合)
c++·python·算法·决策树·贪心算法·机器人·gpu算力
189228048611 小时前
NV022固态MT29F16T08GWLCEM5-QBES:C
c语言·开发语言
月疯1 小时前
PyTorch 中定义了一个 LeakyReLU 激活函数层
人工智能·pytorch·python
小白学大数据2 小时前
AI 智能爬虫实战:Selenium+Python 自动绕反爬、一键提取数据
爬虫·python·selenium·数据分析