社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

基于WSL2的VeighNa Docker安装指南

VeighNa开源量化 • 1 年前 • 277 次点击  

更新于月前的VeighNa 3.7.0版本新增了量化交易容器解决方案VeighNa Docker,《VeighNa发布v3.7.0 - 量化交易容器解决方案VeighNa Docker!》一文中,介绍了在Linux服务器环境下的VeighNa Docker安装步骤。

与前文不同的是,本文是基于Windows操作系统WSL2环境下的 VeighNa Docker安装指南。文章以Windows 10为示例操作系统,Windows11系统的操作方式与之类似,尽管存在细微差异,但无需担心操作系统版本差异会导致安装步骤发生巨大变化。

同时,文章使用的Ubuntu为22.04 LTS版本,请谨慎选择其他版本作为Linux发行版的部署(可能细节步骤差异较大)。需要特别注意的是,部分Windows操作系统自带的WSL并不足以支持接下来的操作,请务必确保跟随指南完成WSL2的部署再进行Docker安装。

如果已经有完整的WSL2部署,可从【基于Ubuntu的Docker安装】开始;如果也已经完成了Docker的正确安装且完成了中文环境的配置,可直接从【VeighNa Docker安装开始】。


内容目录

1.虚拟环境部署

2.WSL2及Ubuntu部署

3.基于Ubuntu的Docker安装

4.Docker中文环境配置

5.VeighNa Docker安装

虚拟环境部署


1.1. 检查Windows操作系统内部版本,在命令提示符(CMD)中运行winver命令,会弹出如下图的窗口:

请检查【操作系统内部版本】,确保内部版本在19041及以上。若版本过低,推荐使用Windows官方更新助手,更新过程中,系统可能会多次重启。

1.2. 查看CPU的虚拟化支持特性:进入任务管理器,点击导航栏中的“性能”进入如图所示的界面。注意右下角“虚拟化”一栏状态是否为“已启用”。

若显示【已禁用】,请耐心进行如下操作:
    • 进入BIOS
      • 作者使用的Surface笔记本可以通过长按启动按键进入BIOS,不同型号电脑的进入方式存在差异,请根据机型进行本步操作
    • 找到Virtualization TechnologIntel Virtualization Technology选项
      • 各类型电脑中的该选项所在位置存在差异,可能位于Configuration选项、Security选项、system configuration选项或者Advanced选项下;
    • 选择上述选项
      • 在弹出的窗口中选择“Enabled”选项,并敲击回车进行确定,启用CPU虚拟化;
    • 更改完成后,要进行保存才能够生效
      • 按键盘上的启动按键或在BIOS中进入“Exit”选项,在弹出保存更改的窗口选择yes选项,随后电脑就会重启,回到任务管理器对应窗口看到“虚拟化已启用”即完成CPU虚拟化启用。

1.3. 在“控制面板\程序\程序和功能”中打开“启用或关闭Windows功能”,并勾选【适用于Linux的Windows子系统】和【虚拟机平台】,点击确认键退出页面。



WSL2及Ubuntu部署


2.1. 下载WSL2需要使用的Linux内核:

适用于x64计算机的WSL2 Linux内核更新包下载

下载完成后,双击运行更新包,系统将提示需要管理员权限,选择【是】以批准此安装;

2.2. 将WSL2设置为默认版本并更新到latest版本,管理员权限下在命令提示符(CMD)中运行命令:

wsl --set-default-version 2wsl --update

2.3. 安装Ubuntu 22.04 LTS:
打开Microsoft Store,查找Ubuntu 22.04.2 LTS并获取下载安装,请注意,不要在本步骤立即启动该Linux分发:


2.4. 运行以下命令,注销并卸载以前的Linux版本,以便重新安装干净的Linux(Ubuntu):

wsl -l -vwsl --list --all


    
--unregister Ubuntu-22.04--unregister docker-desktop--unregister docker-desktop-data

运行结果如下图所示:


2.5. 以管理员身份运行Ubuntu 22.04.2 LTS.exe:
首次启动新安装的 Linux 分发版时,将打开一个命令行窗口,系统会要求等待一分钟或两分钟,以便文件解压缩并存储到电脑上,后续每次使用时的启动时间通常不到一秒;

2.6. 为新的 Linux 分发版创建用户帐户和密码:
当完成文件解压存储后,Ubuntu将显示“Enter new UNIX username:”,用户可以按照要求进行用户名的设置。需要注意的是,用户名的表达规则需要符合Ubuntu对命名规定的正则表达式(#NAME_REGEX="^[a-z][-a-z0-9_]*\$"),即用户名:

    • 首字符必须为小写的a到z小写字母
    • 用户名不限长度
    • 除首字符,可使用"-"字符以及任意小写字母和0-9范围内的数字组成其他字
    • 如果不想按照规则进行用户名命名,则可以用“username --force-badname”的方式命名,--force-badname是弱检查命令,即使用的命名不符合规则仍可记录为合法的用户名

完成用户名设置后,Ubuntu将提示用户设定相应的“New password”,并需要再次输入以确认密码。请注意,在Ubuntu中的密码设置,即便键入任意字符密码也不会显示在屏幕上,这并不是没有输入,只是没有打印在屏幕上,因此建议用户不要设置过于复杂的密码。密码设置成功后,Ubuntu将输出日志,如图所示,当带用户名的可操作命令行出现时则可认为成功安装并设置了与 Windows 操作系统集成的 Linux 分发:

2.7. 更新系统上的软件包,在Ubuntu命令面板中使用命令:

sudo apt-get update

至此,WSL2及Ubuntu的部署已经完成,如果依照流程仍然无法顺利运行Ubuntu,请参考WSL官方的疑难解答排查原因并重新安装Ubuntu。另外,Ubuntu终端下Windows快捷键是无法使用的,可使用鼠标右键粘贴命令到Ubuntu命令面板。


基于Ubuntu的Doceker Desktop安装


3.1. 在官网下载Docker Desktop并安装:

https://www.docker.com/products/docker-desktop/

3.2. 运行Docker Desktop并更改如下设置项:
  • Docker Engine
    • 增加镜像源地址,此处使用163源,也可以在"registry-mirrors"内添加其他镜像源地址:
{  "insecure-registries": [],  "registry-mirrors": [    "http://hub-mirror.c.163.com"  ]}

  • Resources:WSL integration
    • 如图,取消“Enable integration with my default WSL distro”选项,并开启“Enable integration with additional distros:”下对应发行版集成开关:


  • 更改完成后点击右下角“Apply & restart”以保存设置

3.3. 验证Docker Desktop与Ubuntu集成。在Ubuntu终端运行命令:

sudo docker run hello-world

在Ubuntu终端看到"Hello from Docker!"信息,并且在Docker Desktop中Containers列表中看到一个如下图被随机命名且镜像为“hello-world”的容器,则说明Docker安装无误,可以进行下一步操作。

与在Linux服务器环境下操作不同的是,WSL2环境下的用户本地存在X server,默认不做访问控制,因此无需像Linux环境在每次重启系统后必须运行xhost相关命令以开放权限特殊情况需要解除访问控制,则运行命令:

apt-get install x11-xserver-utilsxhost +


WSL中文环境配置

WSL的中文环境设定并非必须在VeighNa Docker安装前完成,用户可在安装完毕后进行。但需注意,未执行此步骤,VeighNa Docker中的中文字符可能会出现乱码。

4.1. 安装中文字库及中文语言包:

apt install fonts-noto-cjksudo apt install language-pack-zh-hans 


    
language-pack-zh-hans-base

4.2. 设置操作系统语言为UTF-8,该设置将在终端重启后生效:

echo "LANG=zh_CN.UTF-8" >> ~/.profile

4.3. 设置整个操作系统的默认语言为中文:

sudo dpkg-reconfigure locales

此时将出现软件包设置页面,如下图所示:

使用方向键滚动找到zh_CN.UTF-8后,点击空格键选中,然后用Tab键切换至【确定】。


VeighNa Docker安装

5.1. 在ubuntu用户下创建文件夹:

mkdir traderls

可将"trader"更改为任意文件夹名称,以该命名的文件夹为例(此后文章均使用此例),输出结果如下图:


后续如果想要删除文件请使用如下命令。注意,如果在文件夹内的文件,请提供路径和文件名称来进行删除操作:

sudo rm -f trader

5.2. 进入新建的文件夹,在该文件夹下创建文件run.py,并检查是否创建成功:

cd tradertouch run.pyls


5.3. 可以通过"cd .."回到上一级目录,通过"pwd"及"cd -"均可显示当前文件路径,记录文件路径或者文件夹路径,以便后续操作;

5.4. 使用nano(或者其他习惯使用的编辑器软件)打开创建的run.py文件:

sudo nano /user/trader/run.py

打开run.py文件后,在Ubuntu命令面板内右键粘贴以下内容:

from vnpy.event import EventEnginefrom vnpy.trader.engine import MainEnginefrom vnpy.trader.ui import MainWindow, create_qapp
from vnpy_ctp import CtpGatewayfrom vnpy_ctastrategy import CtaStrategyAppfrom vnpy_ctabacktester import CtaBacktesterApp

def main(): """Start VeighNa Trader""" qapp = create_qapp()
event_engine = EventEngine() main_engine = MainEngine(event_engine) main_engine.add_gateway(CtpGateway) main_engine.add_app(CtaStrategyApp) main_engine.add_app(CtaBacktesterApp)
main_window = MainWindow(main_engine, event_engine) main_window.showMaximized()
qapp.exec()

if __name__ == "__main__": main()

请注意,对run.py进行更改后的退出方法不是通过右上角的关闭按钮,请确保run.py文件内容已经保存后,根据编辑器使用快捷键从文件编辑页面退回到命令面板。


5.5. 使用下列命令运行run.py文件:

docker run \-e DISPLAY=$DISPLAY \-v /tmp/.X11-unix:/tmp/.X11-unix \-v /home/user/trader:/home \veighna/veighna:3.7 python3 run.py

如果是首次运行,Docker引擎会自动从Docker Hub网站上下载拉取veighna/veighna:3.7镜像(大约几分钟的时间,取决于网络带宽),并在下载完成后直接启动容器,此时就可以看到熟悉的VeighNa Trader界面了:

同时,在Docker Desktop容器列表中会出现镜像名为 “veighna/veighna:3.7” 的容器实例,此后启动VeighNa Docker可直接点击容器右侧Action的播放键以运行,无需反复通过命令行在终端进行操作。

如果发现VeighNa Docker界面中出现中文乱码,请回到前面的WSL中文环境配置步骤检查语言配置。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/156263
 
277 次点击