windows vnpy运行过程及问题记录

windows vnpy运行过程及问题记录

正确的执行步骤(总结)

前置条件

完整安装流程

步骤1:创建 Python 3.10 虚拟环境
powershell 复制代码
# 创建虚拟环境
py -3.10 -m venv .venv310

# 激活虚拟环境
.\.venv310\Scripts\activate
步骤2:安装核心 vnpy 框架
powershell 复制代码
# 在虚拟环境中执行安装脚本
.\install.bat

注意 :如果 ta_lib 安装失败(需要编译),可以:

  • 先安装预编译的 numpy:python -m pip install numpy --index-url https://pypi.org/simple
  • 或者暂时跳过 ta_lib,先完成其他安装
步骤3:安装策略应用模块
powershell 复制代码
# 使用 VeighNa 的 PyPI 源安装策略模块
python -m pip install -i https://pypi.vnpy.com --trusted-host pypi.vnpy.com vnpy_ctastrategy vnpy_ctabacktester vnpy_sqlite
步骤4:安装 CTP 交易网关
powershell 复制代码
# 检查是否有预编译 wheel(推荐)
python -m pip install -i https://pypi.vnpy.com --only-binary=:all: --trusted-host pypi.vnpy.com vnpy_ctp

# 如果上面失败(没有 wheel),需要:
# 1. 安装 Visual Studio Build Tools(包含 C++ 编译工具)
# 2. 或者使用 VeighNa Studio(官方定制 Python 发行版)
步骤5:创建启动脚本 run.py
python 复制代码
from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp

# 如果安装了 vnpy_ctp,取消下面的注释
# from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp


def main():
    """Start VeighNa Trader"""
    qapp = create_qapp()
    
    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    
    # 如果安装了 vnpy_ctp,取消下面的注释
    # main_engine.add_gateway(CtpGateway)
    main_engine.add_app(CtaStrategyApp)
    main_engine.add_app(CtaBacktesterApp)
    
    main_window = MainWindow(main_engine, event_engine)
    main_window.showMaximized()
    
    qapp.exec()


if __name__ == "__main__":
    main()
步骤6:运行 VeighNa Trader
powershell 复制代码
# 确保在虚拟环境中
python .\run.py

关键要点

  1. 必须使用 Python 3.10,不要用 更高版本
  2. 必须使用虚拟环境,避免依赖冲突
  3. 使用 VeighNa 的 PyPI 源-i https://pypi.vnpy.com
  4. 如果遇到 SSL 错误 ,添加 --trusted-host pypi.vnpy.com
  5. vnpy_ctp 需要编译或 wheel,如果都没有,考虑使用 VeighNa Studio

📝 详细过程记录(遇到的问题及解决方案)

1. 运行 install.bat 安装ta_lib和vnpy的依赖及其框架

cmd 下

复制代码
./install.bat

2. 按照README.md中给出的代码创建run.py

Python 复制代码
from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp

from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp


def main():
    """Start VeighNa Trader"""
    qapp = create_qapp()

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    
    main_engine.add_gateway(CtpGateway)
    main_engine.add_app(CtaStrategyApp)
    main_engine.add_app(CtaBacktesterApp)

    main_window = MainWindow(main_engine, event_engine)
    main_window.showMaximized()

    qapp.exec()


if __name__ == "__main__":
    main()

但运行时报如下错误:

复制代码
PS D:\own\量化\vnpy> python.exe .\run.py
Traceback (most recent call last):
  File "D:\own\量化\vnpy\run.py", line 5, in <module>
    from vnpy_ctp import CtpGateway
ModuleNotFoundError: No module named 'vnpy_ctp'

原因:vnpy_ctp 不在这个 vnpy 核心仓库里,它是"交易接口网关"插件包,需要单独 pip install。

手动安装 vnpy_ctp

复制代码
pip install vnpy_ctp

此时,又有报错如下:

复制代码
PS D:\own\量化\vnpy> pip install vnpy_ctp
WARNING: Ignoring invalid distribution ~ip (C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages)
Collecting vnpy_ctp
  Using cached vnpy_ctp-6.7.11.2.tar.gz (12.6 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [20 lines of output]
      + meson setup C:\Users\Administrator\AppData\Local\Temp\pip-install-tvjefcqq\vnpy-ctp_d232ea6b74ec4ceeb2c0f266a65cf01b C:\Users\Administrator\AppData\Local\Temp\pip-install-tvjefcqq\vnpy-ctp_d232ea6b74ec4ceeb2c0f266a65cf01b\.mesonpy-4nwp9ywi -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md --native-file=C:\Users\Administrator\AppData\Local\Temp\pip-install-tvjefcqq\vnpy-ctp_d232ea6b74ec4ceeb2c0f266a65cf01b\.mesonpy-4nwp9ywi\meson-python-native-file.ini
      The Meson build system
      Version: 1.10.1
      Source dir: C:\Users\Administrator\AppData\Local\Temp\pip-install-tvjefcqq\vnpy-ctp_d232ea6b74ec4ceeb2c0f266a65cf01b
      Build dir: C:\Users\Administrator\AppData\Local\Temp\pip-install-tvjefcqq\vnpy-ctp_d232ea6b74ec4ceeb2c0f266a65cf01b\.mesonpy-4nwp9ywi
      Build type: native build
      WARNING: Failed to activate VS environment: Could not find C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe
      Project name: vnpy_ctp
      Project version: 6.7.11.2

      ..\meson.build:1:0: ERROR: Unknown compiler(s): [['icl'], ['cl'], ['c++'], ['g++'], ['clang++'], ['clang-cl']]
      The following exception(s) were encountered:
      Running `icl ""` gave "[WinError 2] 系统找不到指定的文件。"
      Running `cl /?` gave "[WinError 2] 系统找不到指定的文件。"
      Running `c++ --version` gave "[WinError 2] 系统找不到指定的文件。"
      Running `g++ --version` gave "[WinError 2] 系统找不到指定的文件。"
      Running `clang++ --version` gave "[WinError 2] 系统找不到指定的文件。"
      Running `clang-cl /?` gave "[WinError 2] 系统找不到指定的文件。"

      A full log can be found at C:\Users\Administrator\AppData\Local\Temp\pip-install-tvjefcqq\vnpy-ctp_d232ea6b74ec4ceeb2c0f266a65cf01b\.mesonpy-4nwp9ywi\meson-logs\meson-log.txt
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> vnpy_ctp

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

原因:

执行 pip install vnpy_ctp 时,pip 没有拿到可直接安装的预编译 wheel,而是拿到了源码包:

Using cached vnpy_ctp-6.7.11.2.tar.gz

于是 pip 走"从源码编译安装"的流程(日志里出现了 meson setup),但系统里 没有可用的 C/C++ 编译器工具链,所以 Meson 找不到任何编译器:

找不到 VS 环境:Could not find ...vswhere.exe

找不到编译器:Unknown compiler(s): ... 'cl' ...(MSVC 的 cl.exe 不存在/不在环境里)

因此失败点就是:vnpy_ctp 需要编译(或需要 wheel),环境缺编译器

我现在用的python是3.12版本的,vnpy_ctp没有3.12版本的wheel,改为3.10版本的python

从连接https://www.python.org/downloads/windows/中下载3.10的python并安装

创建3.10版本的虚拟环境

复制代码
py -3.10 -m venv .venv310
.\.venv310\Scripts\activate

在3.10环境下,重新安装vnpy的依赖和框架:

执行

复制代码
./install.bat

执行如下命令安装vnpy_ctp

复制代码
pip install -i https://pypi.vnpy.com --only-binary=:all: vnpy_ctp

继续安装其他的依赖

复制代码
python -m pip install -i https://pypi.vnpy.com --trusted-host pypi.vnpy.com vnpy_ctastrategy vnpy_ctabacktester vnpy_sqlite
相关推荐
临沂GEO7 小时前
GEO搜索优化科普|正规地理位置流量运营入门指南
大数据·人工智能·python·流量运营
大模型码小白7 小时前
Spring AI Tool 实现自然语言操作 MySQL 数据库详解
服务器·开发语言·数据库·人工智能·python·mysql·spring
xier_ran7 小时前
【infra之路】AWQ 详解:激活感知权重保护,让 W4A16 量化精度超越 GPTQ
线性代数·算法·机器学习·量化·infra
荷蒲8 小时前
【小白量化Qbuddy】利用AI学习中文Python
人工智能·python·学习
数据狐(Datafox)10 小时前
京东商品列表API技术解析与落地应用(含标准 JSON 示例)
java·大数据·前端·人工智能·python·数据分析·json
量化吞吐机10 小时前
2026年下半年手工交易规则走向量化表达,产品该先接住哪一步
人工智能·python
Metaphor69210 小时前
使用 Python 读取和删除 Excel 文件属性
python·excel
迷迭香yy11 小时前
Python构建转融券多空识别系统从接口到因子的全流程 IG50免费开源股票数据API接口
开发语言·python·开源
月光船幽幽12 小时前
真实即粗糙,光滑是伪造
人工智能·python
一次旅行12 小时前
Attention机制从数学到工程:拆解缩放点积+多头注意力|附可运行PyTorch实现与踩坑指南
人工智能·pytorch·python