VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 187
声望: 55

对于vn.py的初学者以及绝大部分用户来说,Windows操作系统可能是比较好的选择,性能满足需求而且也几乎没有额外的学习成本。但不可否的是,Linux操作系统在系统资源占用、扩展服务开发、跨进程通讯延时等方面,有着明显的优势。

 

社区内也一直不乏用户希望尝试学习使用Linux,常见的两种形式包括:

 

  • 虚拟机:VMWare、Hyper-V等,运行于本地电脑,傻瓜式安装适合体验学习
  • 云服务器:阿里云、腾讯云等,需要自行安装配置,运行于服务端更适合实际应用

 

本篇教程就主要针对如何在阿里云服务器上搭建一套完整的Linux量化交易系统环境来讲解。Linux版本上选择了vn.py官方支持的Ubuntu 18.04 LTS 64位版本,如果要使用Debian、CentOS等可以自行尝试,整体大同小异。
 

主要用到的工具包括MobaXterm(远程连接客户端)、Xubuntu-destop(服务器图形界面)、vnc4server(远程桌面服务)等,尽管安装配置的过程有些繁琐,但只要跟着图文说明一步步去做,100%能成功。

 

在开始安装工作前,请先准备好1台阿里云的服务器(也可以选择AWS、腾讯云等):

 

  • 节点选择:华东2(国内期货、证券)或者香港(外盘)
  • 机器配置:2核以上CPU,4G以上内存,共享计算型(不要选突发实例)
  • 操作系统:Ubuntu 18.04 LTS 64位
  • 网络带宽:按需付费,20M以上带宽,分配公网IP
  • 登录方式:用户名和密码(不要选密钥)

 

购买好后请记录下该服务器的公网IP,下面连接要用。

 

 

安装MobaXterm

 
MobaXterm是一款增强型远程连接工具,可以轻松地调用远端Linux服务器上的各项功能命令。接下来将会用到MobaXterm的SSH和VNC功能:

 

  • SSH,可以理解为命令行终端,类似黑框框的CMD
  • VNC,则可以理解为远程图形化桌面,类似常规Windows桌面

 

首先,需要从官网下载MobaXterm:

https://mobaxterm.mobatek.net/download-home-edition.html

 

下载完成后解压安装包,直接双击exe文件进行安装。

 

安装完成后,双击桌面图标启动MobaXterm。在主界面中单击导航栏左边第一个【Session】进入连接页面。

 
description

 

或者也可以点击顶部菜单栏【Sessions】->【New Session】按钮。

 
description

 

在弹出的新页面Session Settings中,单击导航栏最左边的【SSH】按钮。然后在Basic SSH settings中输入云服务器的公网IP和账号。

 
description

 

其中默认账号为root,输入root账号之前记得把左边小方框勾选上,端口号保留默认的22即可,然后点击最下方的【OK】按钮。

 
description

 

之后会自动弹出一个新的连接页面,第一次连接时右侧终端会提示输入云服务器的密码,注意在输入时,界面上并不会有任何反应(不会显示密码)。

 
description

 

输入完按回车键后,若密码正确则会弹出一个小窗口提示是否保存密码,可以点击【Yes】按钮。

 
description

 

看到下图中显示的内容,就说明阿里云的Ubuntu服务器已经连接成功了。左边显示的是云服务器上的文件夹目录,右边的黑框是命令操作界面。

 

description

 

到这里,我们就完成了使用MobaXterm远程连接云服务器的步骤。当然,这种连接是基于SSH,只能通过命令行终端的方式来调用服务器上的各项功能。

 

为了更方便的管理连接,需要进行一下重命名:点击最左侧的【Session】选项,找到刚刚创建的SSH连接,鼠标右键选定该连接,选择【Rename session】。

 
description

 

弹出Session settings界面,其中的Session name可以修改为任意名称,这里我们将其重命名为DEV_1,完成后点击左下方的【OK】保存。

 

description

 

此时在左侧的Sessions标签中,我们可以看到该连接的名称已经改为了DEV_1。

 

description

 

同理重复上面的操作,输入相同的云服务器的公网IP和账号,创建第二个SSH连接(命名为DEV_2),这样我们就能同时使用2个终端了,同理你也可以创建更多的终端连接。

 
description

 
 

更新软件仓库

 
在Windows下安装软件,通常只需要准备好安装包的exe文件,然后一路点击【下一步】即可完成。但Linux并非如此,Linux系统的发行版大多自带了软件包管理器,如Ubuntu和Debian的APT。

 

对于大部分常用的软件,用户都可以直接从官方提供的仓库中下载安装需要的软件,而不必自己去每个网站下载,这也是Linux与Windows在使用上的一大区别。

 

所以在Ubuntu系统中,本地保存了一个软件包安装源列表,列表里面都是一些网址信息,标识着某个源服务器上有哪些软件可以安装使用。所以为了能够正常安装最新版本的软件,首先需要更新软件包管理器里的这些列表。

 
description

 

只需要在Ubuntu终端中,运行输入命令

sudo apt-get update

就会如上图所示,自动遍历访问源列表中的每个网址,并读取最新的软件信息,保存在本地系统中。

 
 

安装Xubuntu-destop

 
Xfce是一款针对Linux/UNIX系统的现代化轻量级开源桌面环境,优点是内存消耗小,且系统资源占用率很低,Linux之父Linus Torvalds日常使用的桌面环境就是Xfce。
 

Xfce只是纯粹的桌面环境,但我们在日常使用操作系统时,还需要许多其他常用的工具,如多国语言支持、浏览器、输入法工具等。Xubuntu-desktop就是一套整合了Xfce桌面环境和其他常用图形界面软件的安装包。

 

安装方法也相对简单,在终端中运行命令:

 

sudo apt-get install xubuntu-desktop

 
description

 

在国内当前的网络环境下,Xubuntu-desktop的下载和安装可能耗时在20-60分钟的样子,期间可以在终端中看到类似上图所示的安装信息。

 

 

搭建VNC服务

 
VNC是一款基于RFB协议的屏幕画面分享及远程操作软件,主要特色在于跨平台性:我们可以用Windows电脑来控制Linux系统,反之亦然。

 

首先需要安装VNC服务器,在终端下运行命令:

 

sudo apt-get install vnc4server

 

安装完毕后,在终端运行命令
 

vncserver

 
用来启动VNC服务器。首次运行时需要设置VNC远程连接的密码,长度至少是6位,并且二次输入来确认(注意该密码不是Ubuntu账户的密码)。

 

description

 

VNC服务器启动好后,可以在日志输出文件名中看到其默认端口是1,上图所示红色方框标识“:1”。

 

启动了远程桌面服务器后,下一步是配置xstartup文件,来设置远程桌面使用Xfce的桌面环境。用文本编辑器nano打开xstarup文件,在终端运行命令:

 

nano ~/.vnc/xstartup

 

可以看到如下内容:

 
description

 

需要在最后一行 "x-window-manager &" 前面添加一个"#"注释掉这行,同时在文件最后加入一段新的配置信息:

 

session-manager & xfdesktop & xfce4-panel &
xfce4-menu-plugin &
xfsettingsd &
xfconfd &
xfwm4 &

 
description

 

修改完毕后,按住“Ctrl”和“Y”键来退出nano编辑器,注意会询问是否要保存当前修改,请按“Y”进行保存。

 

配置完xstartup后,我们需要重启VNC服务器:先把默认的1号端口服务杀掉,然后新的服务我们改为使用9号端口(因为1号端口容易被扫描攻击),同时设置远程桌面的分辨率为1920x1080(根据你的本地显示器分辨率来设),运行下列命令:

 

vncserver -kill :1
vncserver -geometry 1920x1080 :9

 

description

 

 

连接VNC桌面

 

回到MobaXterm主界面,单击主页最上边的【Sessions】->【new Session】弹出【Sessions settings】界面,这一次选择【VNC】连接。

 

其中【IP address】为阿里云公网IP,【Port】为VNC连接端口,在上一段中我们选择了在9号端口启动,故从需要把Port端口由默认的5900调整为5909。

 
description

 

同时在下面的【Bookmark settings】界面对该VNC连接进行重命名为“VNC”,点击左下方的【OK】按钮,开始连接VNC远程桌面,成功后即可看到如下图所示的Xfce图形界面:

 
description

 

 

安装IBus中文输入法

 
作为中国人总归免不了要输入中文,这里我们选择安装IBus中文拼音输入法,在终端中运行命令:
 

sudo apt install ibus-pinyin

 

安装完成后,还需要先配置下Ubuntu系统的中文语言包:
 

  1. 在桌面顶部的菜单栏,点击左上方【Applications】->【Settings】->【Language Support】按钮;
  2. 第一次会出现提示语言未全部安装,然后点击确认自动安装,成功后会弹出【Language Support】界面;
  3. 完成后点击下方的【Install/Remove Languages】按钮,会弹出新的【Installed Languages】界面,勾选【Chinese(Simplified)】,即简体中文,然后点击下方的【Apply】按钮;
  4. 最后在【Keyboard input method system】选项选择【IBus】。

 
description

 

设置完中文语言包后,进入IBus输入法设置:

 

  1. 在菜单栏左上方点击【Applications】->【Settings】->【IBus Preferences】选项;
  2. 第一次会提示IBus-Daemon尚未启动,点击【Yes】按钮进行安装,成功后菜单栏右上角出现一个语言图标,并且弹出【IBus Preferences】界面;

description
 

  1. 进入【Input Method】界面,点击【Add】来添加中文输入法:选择【Chinese】->【Pinyin】;

description

 

  1. 鼠标右键点击菜单栏上的语言图标【Restart】按钮来重启;

description

 

  1. 然后再次左键点击,点击【Chines-Pinyin】就可以输入了。此时语言图标也变成“拼”字;

description

 

  1. 打开一个编辑器或浏览器,可以看到我们此时输入的已经是中文拼音。

description
 

 

安装Visual Studio Code

 
既然要写程序那就还需要一套IDE工具,同样这里我们使用vn.py官方推荐的Visual Studio Code(VSCode),作为微软出品的轻量级代码编辑器,在Linux下的安装和使用也同样非常方便。

 

打开Visual Studio Code的官网:https://code.visualstudio.com/

 
description

 

在官网首页点击下载.deb版本:

 
description

 

Ubuntu下的deb格式安装包,需要用使用dpkg命令来安装。进入下载文件所在的目录/root/Downloads,鼠标在空白处右键点击【Open Terminal Here】进入终端:

 
description

 

输入下面命令安装:
 

sudo dpkg -i code_1.37.0-1565227985_amd64.deb

 
description
 

安装完成后会发现VSCode不能正常启动,因为Xfce和VSCode的默认设置存在兼容性问题,需要手动配置,在终端中运行下面命令:

 

sudo sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' /usr/lib/x86_64-linux-gnu/libxcb.so.1

 

再次尝试启动VSCode,已经可以正常打开运行,注意上述命令输入运行后界面没有任何输出。

 
 

安装Python3.7

 

Ubuntu 18.04系统中内置了Python 2.7和3.6,并且输入python命令时默认启动的是Python2.7。

 
description

 

但v2.0版本的vn.py则是基于Python 3.7,如果安装新的Python 3.7版本,则需要把新安装的Python 3.7设置为系统默认的Python环境,同时将pip命令也指向Python 3.7的版本。
 

手动进行上述命令的重新定向容易导致各种问题,所以这里我们选择使用Minconda(Python 3.7 64位)。作为有名的Python科学计算发行版本Anaconda的轻量小弟,安装完成后会自动设置其内部的Python 3.7为系统默认环境。
 

打开Minconda官网,选择【Linux】系统的Python 3.7【64-bit】版本下载:

 
description

 

下载完成后,进入文件所在目录/root/Downloads可以看到.sh格式的Miniconda安装包,鼠标在空白处右键,点击【Open Teminal Here】进入终端,然后输入命令进行安装:

 

bash Miniconda3-latest-Linux-x86_64.sh

 
description

 

安装完毕后,在终端运行Python,可以看到当前的版本已经变成Python 3.7:

 
description

 

折腾至此,终于完成我们的目标:支持远程图形桌面的阿里云Ubuntu量化交易服务器~~未来Linux使用熟练后,也同样可以选择关闭图形界面,以纯命令行的形式来运行vn.py的自动交易功能。
 

了解更多知识,请关注vn.py社区公众号。
description

Member
avatar
加入于:
帖子: 1
声望: 1

安装语言包时会死机?!怎样处理?

Member
avatar
加入于:
帖子: 6
声望: 1

这篇文章太牛了,对小白超级友好,非常感谢!

Member
avatar
加入于:
帖子: 14
声望: 0

感谢楼主 👍

Member
avatar
加入于:
帖子: 15
声望: 3

补充一点:使用阿里云服务器的,配好vncserver后,要在阿里云控制台把5909端口给配上,不然连不上

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】