veighnapy官网提供集成的studio版本安装包,该安装包包含开发者测试通过的集成环境,但通常安装包较大,我在部署过程中经常出现VScode无法准确识别原有anaconda3集成环境和veighnapy集成环境的情况。为了较好解决两个环境的兼容性问题,我对veighnapy在GitHub页面提供的手动安装教程进行研究,并且结合多次实践撰写了以下方案:

一、确定并统一anaconda3和veighnapy要求的python版本

由于两公司开发进度不同,最新版的anaconda3和veighnapy所支持的python版本通常会不一样,需要调整为同一python版本方可使用。以anaconda3的2023.09.0为例,其中包含的python版本是3.11,而veighnapy的3.9版本支持到python版本是3.10,当anaconda3安装成功后需要建立包含python3.10的虚拟环境,并在该环境中安装veighnapy,方法如下:

1、使用anaconda prompt提示行,如习惯powershell可以使用powershell版本的。使用命令:conda create -n "虚拟环境名称" python=3.10 ,来建立虚拟环境,其中双引号部分可以自行命名。python后面是指定的版本号,指定后conda会根据该python版本自动下载匹配的环境包

2、在prompt中激活并进入虚拟环境。使用命令:conda activate "虚拟环境名称" ,来激活并进入环境,可以看到prompt中命令行开头的"(base)"改成了"(虚拟环境名称)"。

二、安装TA-Lib库

TA-Lib库是著名的python金融计算库,具有数十年的历史,但也造成该库版本繁杂,在安装过程中经常出现各种异常报错。目前较为常见的错误是操作系统和python环境是64位的,但TA-Lib在pip、conda等源上仅有32位whl文件,如需在64位系统安装需要使用MSVC系列软件进行现场编译。而加州大学UCI原有的非官方python库已经下线,目前国内互联网上大部分TA-Lib库安装方式均已失效,本文提供了一些其他的TA-Lib库whl文件下载方式,通过该方式可继续下载使用

1、gohlke在GitHub开设的talib-bulid项目
gohlke是原加州大学python库的主要维护方,目前在GitHub上提供talib最新已编译版本的下载,地址是gohlke

2、sourceforge下载源
sourceforge是国外常用的下载软件站,目前也有talib已编译版本的提供,地址是sourceforge

在下载过程中需要注意talib版本需要保持同anaconda3、veighnapy要求的版本一致,根据上文举例的环境,需要64位(amd64)、python3.10(cp310)等条件,因此选择对应文件下载,并通过pip install -U TA-Lib**.whl安装,注意替换对应下载的文件名。

三、clone vnpy的GitHub源码并修改install.bat文件

下载veighnapy的GitHub源码包,可以使用git clone命令也可以直接下载zip包,下载完成后需要先修改install.bat文件。可以看到install文件里面主要包括4部分的内容,第一部分是升级wheel编译器、第二部分是使用vnpy源安装TA-Lib、第三部分是根据requirements.txt安装各类依赖包、第四部分是根据源码包安装veighnapy本体。
其中第二部分TA-Lib已经在上述第二步安装完毕,使用install中的语句会将TA-Lib降级为veighnapy目前使用的版本,可以根据实际需求选择是否降版本,如不需降低则直接将install里面的TA-Lib版本号修改为最新版本即可。
第三部分需要打开requirements.txt文件来对照查看,其中规范了各类依赖包的版本,如可以直接使用最新版本的话,将其中"<"、"=="及后面的版本号删除即可。应谨慎使用最新版本,避免veighnapy同最新版本发生冲突。由于源码包只包含vnpy的主框架,包括engine、rpc、event、trader等,其他各类接口、模块、分析工具等均在官方GitHub项目中单独发布,因此需要单独指定安装。我采用的方法是把其他接口、模块等的名称写在requirements.txt中,后续安装过程中实现一次自动安装。具体名称可参考如下:
vnpy_ctp
vnpy_ctptest
vnpy_mini
vnpy_femas
vnpy_sopt
vnpy_sec
vnpy_uft
vnpy_esunny
vnpy_xtp
vnpy_tora
vnpy_tora
vnpy_comstar
vnpy_ib
vnpy_tap
vnpy_da
vnpy_rohon
vnpy_tts
vnpy_ost
vnpy_hft
vnpy_paperaccount
vnpy_ctastrategy
vnpy_ctabacktester
vnpy_spreadtrading
vnpy_algotrading
vnpy_optionmaster
vnpy_portfoliostrategy
vnpy_scripttrader
vnpy_chartwizard
vnpy_rpcservice
vnpy_excelrtd
vnpy_datamanager
vnpy_datarecorder
vnpy_riskmanager
vnpy_webtrader
vnpy_portfoliomanager

四、在prompt的虚拟环境中执行install.bat

上述工作准备就绪后执行安装命令install.bat,注意观察其中的红字错误提示。常见的错误提示包括TA-Lib安装失败、缺少Microsoft Visual C++ 14.0及以上版本实现编译等。尽量通过安装网上现有版本来规避编译问题,因为最新的MSVC编译器需要3g多的硬盘空间,单独为此安装实在不值得。

五、安装验证

install.bat文件可以多次执行,直到不再出现红字提示后可以认为已经安装成功。功能验证可以使用vnpy源码文件夹/examples/veighna_trader/run.py文件,使用python运行该文件观察是否能够正常弹出可视化页面,prompt窗口是否提示报错等,如不报错基本可以认为vnpy安装完成。

vnpy所处虚拟环境不再使用时,需要在prompt中使用命令:conda deactivate "虚拟环境名称", 来实现虚拟环境关闭,关闭后prompt提示行变回"(base)"。