跳到主要内容

安装

环境准备

vnpyrs对python包的依赖和vnpy几乎一样。Python版本需要3.7以上,推荐3.10以上

pip安装

最佳的安装方式是源码编译安装,这样可以让pyo3启用针对特定的Python版本进行性能优化,而且大部分的深度vnpy用户都对代码做过修改,vnpyrs的代码基本上和vnpy原版的代码一一对应,这样您可以把对vnpy的修改移植到vnpyrs上去(虽然需要学习Rust,但是在有本工程源码作为范例的情况下不会很难)。

如果只是想试用一下,或者仅仅使用vnpy插件模式,可以通过pip安装,但PYPI服务器上的版本一般是通用版本,未针对特定Python版本做过性能优化(影响回测性能,但不影响K线图表的性能,后者完全是用Rust写的)。

Windows

pip install vnpyrs

Linux

pip install vnpyrs

Macos

目前Mac需要源码编译安装

源码安装

Windows

大体上和Linux一样,只是ta-lib Python版的安装可以依靠现成的whl包,可以从这里下载:https://github.com/cgohlke/talib-build/releases

Linux

以下以Ubuntu为例

1.拉取源代码

git clone https://github.com/vnpyrs/vnpyrs.git

若网络不畅,可以从gitee拉取

git clone https://gitee.com/vnpyrs/vnpyrs.git

2.安装rust

Rust的官网网站是https://www.rust-lang.org/ ,但因为官方的下载速度越来越慢,建议用国内字节的代理,代理的官网是https://rsproxy.cn/

export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"
curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh

要求选择时直接回车就行

安装完成后退出shell,重新登陆,键入“cargo”以验证是否安装成功

接下来设置crates.io的镜像,以加快下载Rust依赖包的速度

创建文件~/.cargo/config,内容如下:

[source.crates-io]
replace-with = 'rsproxy-sparse'
[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"
[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index/"
[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"
[net]
git-fetch-with-cli = true

3.安装maturin

vnpyrs是一个Rust和Python的混合项目,因此还需要安装maturin插件,您可以全局安装

pip install maturin

或者在创建Python虚拟环境后安装,创建虚拟环境的问题后面单独讲,Python社区更加建议用此方式。而且如果想修改vnpyrs代码的话,使用虚拟环境会更加容易

4.把项目编译成whl文件 切换到项目的根目录下(就是README.md所在的文件夹),输入:

python3 -m maturin build -r

现在项目根目录下会多出一个target文件夹,里面有个wheels文件夹,再里面有一个.whl后缀的文件,这个就是针对您当前环境的Python版本做性能优化过的包。如果您之前可以正常运行vnpy,请跳过第5步,直接进行第6步

5.安装ta-lib 如果想通过pip的方式安装Python版本的ta-lib,必须先安装C++版本的ta-lib。ta-lib的最新版本是0.6,相比之前,官方给出了更为详细的安装步骤:https://ta-lib.org/install/#linux-debian-packages

对于大部分人来说可以下载页面上的*_amd64.deb包并使用以下命令安装,虽然这个是C++版本的,但是安装了这个以后,Python版本的ta-lib会因依赖关系随其他包自动安装

sudo dpkg -i ta-lib_0.6.4_amd64.deb

另一种安装方式是找到对应操作系统的对应Python版本的whl包,但ta-lib官方只提供Windows平台的。

6.安装vnpyrs的whl文件

whl文件可以通过pip来安装。注意安装过程中会下载它所依赖的Python包,建议使用pip代理以加快下载速度,设置方法自行搜索

pip install (whl文件的文件名)

至此安装完成

7.(可选)建立Python虚拟环境,并以调试模式编译、运行vnpyrs

在项目根目录下执行以下命令

python3 -m venv .env

此时会多出来一个.env文件夹。执行以下命令进入该虚拟环境

source .env/bin/activate

之后再运行pip、python3、maturin命令的话,只影响该环境,或被该环境影响。直到退出shell会话

这个时候您无需运行“python3 -m maturin build -r”、“pip install (whl文件的文件名)”两条命令编译vnpyrs,而只需要一条:

python3 -m maturin develop -r

这个技巧在需要修改vnpyrs代码的时候特别有用