经过一周的折腾,踩完最后一个坑,终于在centOS 上成功部署多个VNPY。本着”人人帮我,我帮人人“的开源思想,这里记录一下步骤与大家共享。

服务器: 阿里云ECS(2核4G)
系统: CentOS 7.6
VNPY: 2.2.0

安装步骤:

  1. 安装配置图形界面: 客户端:MobaXterm 服务器端:安装X组件 , 客户端SSH终端可以显示xclock画面,表示成功
  2. 【root】创建用户 vnpy01 和 vnpy02 ( ... vnpyN)
  3. 【root】安装 Miniconda3-py37_4.10.3-Linux-x86_64.sh 我是安装在 /opt/miniconda3 下的
  4. 【vnpy01】创建vnpy01用户的python环境:
    $conda init bash
    $conda create -n py37_vnpy220 python=3.7
    创建的conda环境目录位于:~/.conda/envs/py37_vnpy220/
  5. 【root】升级GCC->V9.3.1
    我采用的是SCL方式,省去耗时的编译,比较快捷。
    yum install centos-release-scl scl-utils-build
    yum install devtoolset-9-gcc.x86_64 devtoolset-9-gcc-c++.x86_64 devtoolset-9-gcc-gdb-plugin.x86_64
  6. 【vnpy01】下载vnpy2.2.0源码到 /home/vnpy01/workroom
    安装 vnpy. (具体步骤论坛已经很多,这里不再赘叙)
    配置好simnow账号的连接信息,运行 example/vn_trader/run.py , 正常。
  7. 使用vnpy02用户,安装第二个vnpy 。因为我vnpy02用户和vnpy01用户用同一个vnpy版本,所以不需要重新安装,只要把vnpy01的已经安装好的复制过来,就可以直接使用了。
    【vnpy02】
    $ /opt/miniconda3/condabin/conda init bash
    $ conda create -n py37_vnpy220 python=3.7
    【root】
    复制python环境
    # cp -r /home/vnpy01/.conda/envs /home/vnpy02/.conda/envs
    # cp -r /home/vnpy01/.conda/pkgs /home/vnpy02/.conda/pkgs

    复制vnpy代码
    # cp -r /home/vnpy01/workroom /home/vnpy02

    最后别忘了用 "chown chown -R vnpy02:vnpy02 目录" 命令修改权限。

    修改 ~/.vntrader 下的配置信息,使vnpy02连到自己的期货账户。
    这样第2个 vnpy就建好了。

以此类推,可以建立N个vnpy.

顺便提一下我走的弯路,因为当时不懂,跟着论坛Guide,安装桌面和VNC,虽然后来搞成功了,但是花费了很多时间和精力。后来发现,只要putty+X协议就足够了。