近期试着用Python做了一些工作,记录下;
可以作为参考的包括:
- C++执行Python,Python调用C++代码;
- Python实现SSH登录vxworks,并执行命令;登录linux和vxworks还是有区别的;
- Qt的QWebView控件,提交数据包、拦截alert等;
- Python依赖的整体迁移;
引子
近期的一个项目售前的技术预研工作,要实现两块功能,网页登录提交数据和SSH登录到设备执行命令;在家几天时间预研,之后去现场调试;去现场一天半搞完,遇到各种问题,现场调试没有顺利的,而且火炉城市真是热;
趁着时间不久,做个记录,过一阵就忘了。
技术选型
-
Qt
一直用Qt首先想到的用Qt的Web相关功能模拟登录,提交数据和获取数据,通过QWebView控件,执行脚本功能实现了,网页登录,提交表单获取表单数据功能;
Qt没有SSH功能相关类,百度找到openSSH,开始尝试,但是各种编译不过去,版本不对等等问题,最后放弃Qt开始考虑Python实现SSH相关工作;
-
Python
百度搜素得知Python的Paramiko库可以用于SSH登录,并且执行命令等,而且代码只有十几行非常方便;决定用Qt和SSH混合的方式完成改技术验证;
C++内嵌Python
这里遇到各种问题,用掉了一天多的时间,python脚本调用C++函数耽误了些时间,整体比较顺;
版本很重要,32位对32位;
单独写文章记录;
现场技术验证
-
软件环境
软件环境,各个软件的版本很重要,需要说清楚;
我的笔记本:Windows10 64位家庭中文版版;Vs2008; Qt 4.8 for VS2008;Python3.7 32位,在线安装的paramiko;
用户内网计算机:Windows 7;没Qt;有vs2010;不能连接外网
要和我的开发环境一直,现场肯定要编写调试,所有要安装很多东西;
-
现场环境搭建
序号 | 内容 | 步骤 | 问题及解决 |
| Vs2008和Qt4.7 | 这个环境自己很熟悉,较顺利完成 | 熟悉的就没问题了; |
| 安装Python3.7 32位 | Win7需要sp1;下载安装win7 sp1; | 这里幺蛾子多了; 不需要安装VS2015;
|
| Paramiko库迁移 | 需要在我的计算机环境用pip相关命令备份库,然后用户计算机pip相关命令安装; | 第三方库安装,将其它联网计算机的打包库,导入到本计算机;在Python目录中,子目录libs/site-packages目录下执行pip相关命令,baidu查询“Python 库 迁移”会有很多文章可以用;
|
| 依赖库的安装错误; 不需要装BS2015; | 在线的pip安装方式;然后Pip将安装后的打包,复制的需要安装的计算机; | 同上
|
-
SSH连接vxWorks
用户现场通过Python的SSH相关脚本连接设备,也用掉了一下午;在家连接linux很顺利的,到现场就出问题;怀疑是环境原因,是不是ParamIko安装的有问题,在python的库环境上耽误了个把小时,然后这台计算机有Linux的虚拟机,PytHon的SSH脚本很顺利就连接了Linux并执行了命令,看来不是python环境的问题;
用winRCP软件连接设备,打印信息不一样的,并且是vxwork的,重新找解决方法,最终解决;
实际脚本不能带出来,这里记录下重点,包括:
- vxworks在ssh的connect后,仍然需要分别send用户名和密码;
- send数据需要’\n’;
- 用的SSH的shell方式;
演示的界面