这篇文章描述如何在macOS上面装Veighna 3.2.0。
在mac机器上没法使用CTP,而tts提供了CTP的所有接口,所以这里记录一下如何在mac上安装veighna 3.2.0。
首先要装ta-lib
1 | pip install ta-lib |
然后
1 | pip install -r requirements.txt |
最后,进入vnpy源码目录,安装
1 | pip install . $@ |
如果是Linux版本,只需
1 | pip install . |
CTP没法安装,TTS模拟环境也没有办法安装,等后面发布mac版本。
1 | pip install vnpy_tts |
下面文章讲的是veighna 3.0.0的安装流程,目前来看有点老了。
macOS
在mac OS下面安装veighna 3.0.0,Linux类似。我使用的是anaconda下面的python。
创建python 3.10的环境
1 | conda create -n py310 python=3.10 |
激活py310环境。
1 | conda activate py310 |
安装vnpy
1 | pip install -i https://pypi.tuna.tsinghua.edu.cn/simple vnpy |
不出意外,在安装ta-lib的时候会出错。
1 | xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun |
然后重新安装vnpy,即可以成功安装。
进入vnpy/example/veighna_trader/
,执行run.py
1 | python run.py |
遇到如下问题:
ModuleNotFoundError: No module named 'importlib_metadata'
安装模块。
1 | pip install importlib_metadata |
最后可以成功启动veighna trader界面。不过mac OS无法加载CTP模块。
国内市场用到的绝大部分量化交易接口(如CTP、飞马、飞创、恒生等),其开发商只提供了Windows和Linux的API开发包。
没有Mac版本(无法直接使用)的同时,也没有提供API源代码(无法自行编译),因此这类接口在Mac系统上无法使用(强行加载会报错找不到C++的DLL文件)。
但纯Python接口和REST/WebSocket接口,由于不存在对于C++链接库的依赖,所以在Mac上均可以直接运行。
Windows 10
创建python3.10环境和上面相同。
1 | pip install -i https://mirrors.aliyun.com/pypi/simple vnpy |
安装ta-lib失败。
按官网提供的安装方法安装。
1 | pip install --extra-index-url http://139.196.190.180 --trusted-host 139.196.190.180 TA_Lib |
重新执行上面的安装语句,可能会遇到一个错误,这个错误不会中断安装程序,很容易被忽略,而且最后还能显示安装成功。
这个错误跟deap相关。
1 | WARNING: Discarding https://pypi.tuna.tsinghua.edu.cn/packages/af/29/e7f2ecbe02997b16a768baed076f5fc4781d7057cd5d9adf7c94027845ba/deap-1.2.2.tar.gz#sha256=95c63e66d755ec206c80fdb2908851c0bef420ee8651ad7be4f0578e9e909bcf (from https://pypi.tuna.tsinghua.edu.cn/simple/deap/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. |
官方也提供了解决方案。
查看setuptools
版本。
1 | pip list | findstr setuptools |
需要把setuptools
降低到57版本。
1 | pip install setuptools==57.0.0 |
最近再安装vnpy,就可以安装成功了,如果运行时需要什么模块,再安装就可以了。
需要注意的是,如果使用VSCode来编辑python文件,在使用终端命令中,类型一定要选择