安装Ubuntu
推荐的Ubuntu环境:
- 版本:Ubuntu 16.04 LTS
- 硬件:64位,4G内存以上(内存不足可能会导致无法正常编译)
更新软件源
apt 源
系统设置 -> 软件和更新 -> 下载自:其他站点… -> 选择服务器
这里可以让系统自行选择速度最快的服务器,或者直接选择,如教育网可选清华源,阿里云主机可选阿里源等。
输入密码认证后,在终端依次执行以下命令即可:1
2sudo apt-get install update
sudo apt-get install upgrade
pip 源
创建 pip
的配置文件,在终端中执行如下命令创建 .pip
文件夹:1
$ mkdir ~/.pip/
再执行如下命令创建 pip.conf
文件并编辑:1
$ vim ~/.pip/pip.conf
这时候会出现 pip.conf
的编辑窗口,这时候内容为空,进入编辑模式,并把如下内容输入到编辑框里面:1
2[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
编辑完后保存并退出 vim
安装Anaconda
下载 Anaconda2
并安装,必须为 4.0.0
的版本,在终端下依次执行以下命令:1
2
3$ wget https://repo.continuum.io/archive/Anaconda2-4.0.0-Linux-x86_64.sh
$ chmod +x Anaconda2-4.0.0-Linux-x86_64.sh
$ ./Anaconda2-4.0.0-Linux-x86_64.sh
后面根据提示按回车或者输入 yes
即可,要注意一下当提示是否要在 .bashrc
文件中更新 PATH
变量时,一定要输入 Yes
:1
2
3
4
5
6Python 2.7.11 :: Continuum Analytics, Inc.
creating default environment...
installation finished.
Do you wish the installer to prepend the Anaconda2 install location
to PATH in your /home/vnpy/.bashrc ? [yes|no]
[no] >>> yes
安装完后执行如下命令让bash的配置文件即时生效:1
$ source ~/.bashrc
安装依赖项
执行以下命令安装应用软件和所需的 python
库及编译工具:1
2
3$ sudo apt-get install mongodb cmake git
$ sudo apt-get install libsnappy-dev python-snappy
$ apt-get install libboost-all-dev build-essential python-dev
其中,如果未安装 python-snappy
的话会报 ImportError: No module named snappy.
错误。
详见:https://github.com/vnpy/vnpy/issues/639
MongoDB
MongoDB
安装后默认配置为自启动的系统服务,可以使用如下命令查看 MongoDB
的数据文件和日志文件的具体位置:1
$ head /etc/mongodb.conf
会显示如下内容:1
2
3
4
5
6
7# mongodb.conf
# Where to store the data.
dbpath=/var/lib/mongodb
#where to log
logpath=/var/log/mongodb/mongodb.log
使用默认配置即可,不用进行更改。MongoDB客户端推荐Robomongo,下载官方压缩包,解压后进入到 bin
目录,双击 robomongo
即可。
安装vn.py
下载 vn.py
的 最新发行版 压缩包后解压。或直接将最新版源代码 clone
到本地:1
$ git clone https://github.com/vnpy/vnpy.git
然后运行目录下的 install.sh
脚本安装 vnpy
:1
$ bash install.sh
如果一切顺利的话,该脚本会自动完成编译、安装 vn.py
的相关工作。当然不会那么顺利。
运行VnTrader
完成以上安装步骤后,可以尝试运行 VnTrader
来检查是否成功安装了所有的环境,进入 vnpy/examples/VnTrader
,运行:1
python run.py
出现下图所显示的界面,则说明安装成功:
常见的运行时错误及解决方案
Segmentation fault (core dumped)
Anaconda
版本不对。必须为Anaconda2-4.0.0
版。目测作者开发时的就是这个版本。ImportError: No module named talib
因为quantopian
的package
在aws
上,可能无法正常下载,在脚本自动安装vnpy
时会因为出现超时而安装失败的情况。可以科学上网后重新输入以下命令进行安装:1
$ conda install -c quantopian ta-lib=0.4.9
或者先下载对应安装包再进行安装。下载地址
ImportError: No module named vnpy.event
重新安装即可。ImportError: No module named queue
安装future
模块,终端下运行:1
$ pip install future
这是为了兼容 python3
而做出的修改,future
模块已经被包含在 requirements.txt
文档中,但有几率安装失败。
ImportError: twsapi.so: cannot open shared object file: No such file or directory
重新编译vnib
模块,进入vnpy/api/ib
,运行:1
$ bash build.sh
如果继续报错:g++: internal compiler error: Killed (program cc1plus)
原因为内存不足。如果可以,增加内存分配后重新编译。然后返回项目根目录,重新安装 vnpy
即可:
NameError: global name 'xtpGateway' is not defined
查看代码源文件后发现,代码中只有以下命令,但未import
相关底层接口。1
2if system == 'Linux':
me.addGateway(xtpGateway)
作者表示:
移除掉
run.py
里的xtpGateway
相关代码就行