发布于veighna社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2022-03-23
本周发布了VeighNa的3.0.0版本,主要更新的内容是采用Python 3.10作为核心支持(也保持了对3.7、3.8、3.9的兼容),同时对周边插件模块进行了相应的编译升级。
由于内置Python核心的版本升级(3.7 -> 3.10)以及VeighNa Station的开发重构,本次更新无法使用之前的自动升级功能实现,需要用户卸载老版本后下载新的VeighNa Studio-3.0.0,下载链接:
https://download.vnpy.com/veighna_studio-3.0.0.exe
Python 3.10核心支持
关于把核心支持升级到Python 3.10的原因,在之前的《2022年的项目计划》中已经有详细解析,这里就不再重复了。
目前大部分VeighNa的插件模块都已经完成3.10的编译升级,少数由于依赖库问题尚未支持的模块包括:
交易接口
- vnpy_tora
- vnpy_comstar
数据库
- vnpy_arctic
- vnpy_dolphindb
- vnpy_leveldb
数据服务
- vnpy_tinysoft
以上模块预计将会在相关底层依赖库发布3.10版本后尽快完成支持。
兼容性方面,为了尽可能方便老版本用户的升级,VeighNa 3.0.0版本的代码回避了Python 3.7后引入的新语法特性,从而实现3.7、3.8、3.9的向后兼容。
需要注意的是,部分交易接口在Windows上非Python 3.10的环境安装时,必须安装有Visual Studio 2017以上版本来完成相关的底层编译任务。
重构VeighNa Station
作为VeighNa框架的图形化管理工具,VeighNa Station在过去基本只是处于【能用】的状态,很难达到【好用】的评价,可能不少老用户都有过以下类似的经历:
- 同时加载CTP和其他接口(CTPTEST、ROHON等),导致登录报错;
- 自动更新时不时会遭遇各种异常:更新下载失败,兼容性检查冲突等;
- 代码加密运行后无法正确生成pyd:easycython的编译限制较多。
所以趁着这次大版本的升级,对整个VeighNa Station进行了一次重构,一方面致力于解决过去经验中发现的各种问题,另一方面也尽可能利用当下Python的新技术特性,来打造一款称得上【好用】的产品。新版本的登录后主界面如下图:
主界面变化不大,功能按钮从底部移动了左侧,采用标签页面的方式来替代原本的弹出窗口,视觉上更加清爽一些。点击【交易】按钮,切换到VeighNa Trader配置页面:
左侧采用树型表格来选择接口和应用模块的加载,并将VeighNa Trader进程运行过程中的底层输出信息(cmd打印)显示在右侧的监控区域,方便必要时的异常信息排查。
在【投研】页面中,以内嵌方式来启动Jupyter Lab环境,提供更加一体化的交互式开发体验:
另外代码加密和自动更新功能也都做了对应的改进优化,感兴趣的用户可以先尝试看看,交互界面上基本还是采用了和之前类似的流程,具体使用文档将会后续推出。
CHANGELOG
修复
- 使用非原生窗口菜单栏,修复Linux/Mac下【配置】按钮不显示的问题
调整
移除api、gateway、app子模块的目录
移除requirements.txt对于插件的默认依赖
简化重构rpc子模块,定位于可靠环境下跨进程通讯(本机、局域网)
移除rpc子模块对于鉴权的支持
调整rpc子模块中的心跳机制的实现方式
移除基于QScintilla开发的代码编辑器,改用VSCode打开代码
优化MainWindow主窗口中,对于QAction按钮图标的加载逻辑
MainEngine添加交易接口时,支持自定义接口名称