本文记录了利用python包管理生态管理工具uv,从源码恢复vnpy的运行环境的全过程。
一、采用uv作为python生态管理工具
python包管理生态中存在多种工具,如pip、pip-tools、poetry、conda等,各自具备一定功能。
uv新一代python生态管理工具,它是 Astral 公司推出的一款基于Rust编写的Python包管理工具,旨在成为“Python的 Cargo”。
它提供了快速、可靠且易用的包管理体验,在性能、兼容性和功能上都有出色表现,为 Python项目的开发和管理带来了新的选择。
为什么用uv
与其他 Python 中的包管理工具相比,uv 更像是一个全能选手,它的优势在于:
- 速度快:得益于 Rust,uv 工具的速度让人惊艳,比如安装依赖,速度比其他工具快很多
- 功能全面: uv 是“一站式服务”的工具,从安装 Python、管理虚拟环境,到安装和管理包,再到管理项目依赖,它统统都能处理得很好
- 前景光明:背后有风投公司 Astral支持,且采用了 MIT许可,即使未来出现问题,社区也有应对的办法
使用uv,也可以像 Node]s 或者 Rust 项目那样方便的管理依赖。
二、安装uv
windows上安装uv,在cmd窗口中执行下面命令:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
注意:执行完毕后,会在C:\users\\<用户名称>\.local\bin目录下安装两个文件uv.exe和uvx.exe。
进入cmd或者powershell窗口,输入uv命令应该可以得到如下回应就表示uv已经安装成功了:
如果报告“uv不是内部或外部命令,也不是可运行的程序或批处理文件。”请打开“我的电脑”| “高级系统设置”| “环境变量”| “用户变量”| “Path”,把C:\users\\<用户名称>\.local\bin目录添加进去就可以。
三、下载vnpy 4.0源码
如图所示,从https://www.github.com下载到vnpy-master.zip源代码,解压后包含如下文件和目录:
四、恢复vnpy的运行环境
4.1 安装python 3.13.17
输入下面的命令,限定python版本3.13,实际安装的是python 3.13.17。
uv python install 3.13
4.2 重建虚拟环境
来到vnpy-master源码目录下,输入下面的目录创建虚拟环境目录,当前目录下会多出.venv目录,其中包含虚拟环境的配置文件。
cd d:\vnpy-master
uv venv
4.3 安装ta-lib
这一步是最关键的一步,我是好几天都无法通过这一步,最后在陈总——陈晓优的指导下才通过的。
先把ta-lib二进制包装了,注意这里必须先指明安装的源是https://pypi.vnpy.com。
uv pip install ta-lib --index=https://pypi.vnpy.com
4.4 安装vnpy核心模块
uv pip install . --index=https://pypi.vnpy.com
4.5 安装vnpy其他需要的模块
只有vnpy核心模块是不够的,还需要根据自己的需要安装其他的模块才能够运行实际的交易:
- 如果采用ctp行情和交易接口需要安装vnpy_ctp模块
- 如果采用米筐历史书需要安装vnpy_rqdata模块
- 如果采用cta策略需要安装vnpy_ctastrategy模块
- 如果要运行cta策略回测需要安装vnpy_ctastrategy模块
- 如果使用mysql数据库作为数据存储pymysql和vnpy_mysql模块
- 如果需要对本地数据存储进行管理 vnpy_datamanager 模块
可以合并也可以逐条执行如下命令:
uv add importlib_metadata pymysql
uv add vnpy_ctp vnpy_ctastrategy vnpy_ctabacktester vnpy_datamanager vnpy_mysql vnpy_rqdata
五、运行例子
5.1 运行example\verghna_trader\run.py
vnpy的源码中包含一个例子,位于example\verghna_trader子目录下,其中的run.py最具代表性,它演示了如何利用已经安装的核心和其他配套模块能够完成功能:
- vntrader界面
- CTA策略交易界面
- CTA策略回测
- 本地数据管理
- 合约查询
cd d:\vnpy-master\examples\veighna_trader\
uv run run.py