近一段时间在ARM上使用Python,用以完成嵌入式设备的测试工作,最大的不爽在于使用很简陋的命令行,想要即时提示之类的高级功能,做梦去吧。
既然不爽,就开始改造它。
VS下有一个很好用的Python插件PTVS,但是很可惜,它虽然提供了ptvsd这个python库以支持远程调试,但是却不支持远程的命令行操作。而且ptvsd的操作也并不是那么的方便,不如直接F5那么直接。
最终设想这样的开发方式:
1、嵌入式设备通过NFS连接到虚拟机里的指定目录。再将此目录通过samba共享给windows,以此达到不同系统访问同一个文件的目的。
2、PTVS调用Velt提供的PythonWrapper,而PythonWrapper通过Velt的连接管理中心,使用Ssh/Telnet/COM连接到设备并控制python的运行。
3、设备上的python程序通过网络将结果反馈给PTVS。
4、最后通过VS前端进行展示。
具体的技术实现参见前面的两篇文章。下面看看Velt-0.2.6中的操作过程。
1.1 配置Python主机参数
这里的连接方式可以有三种选择,Ssh/Telnet/PuttySession,前面两种比较好理解,使用第三种连接方式时,通过Session名称指定要使用的PuttySession名称。
还要记得将Velt目录下ptvs子目录中的几个文件复制到这里的PTVS路径下。
1.2 配置PTVS
接下来配置PTVS,为了让PTVS的IntelliSense能够正常工作,我们首先将Interpreterpath设置为windows下的python,如C:\Python27\python.exe
而后更新IntelliSense:
最后将python可执行文件设置为Velt-0.2.6中自带的PythonWrapper.exe。
1.3 使用命令行
上面两个都配置好后,就可以自由使用PTVS的命令行了:
看看此时Velt连接管理中心的输出:
一切正常!
1.4 F5调试
将Python工程放在虚拟机的共享目录下,直接F5调试:
~~搞定~~