文章简介一般项目会选择在安装了Windows或者Linux操作系统的普通PC和通用服务器上来执行phthon脚本。如何利用Python语言的跨平台特性,实现在非通用单板和其它非主流设备中执行Python脚本,作者通过移植Python解释器的方法达到了该目标,该方法具备一定的普适性。
一、问题的提出
某产品基于专用单板实现,出于系统优化考虑,该单板上只提供了精简的操作系统配置,从而导致python脚本在该单板上无法运行。
如果能够实现在该专用单板上直接运行python脚本,就可以隔离前端接入模块,直接测试本模块以及底层模块功能的正确性。
二、解决思路
1. 方案一
Python脚本使用USHELL远程登录到该专用单板,通过调试命令执行预先编写的测试函数并获取返回结果。
优点:脚本编写不受该专用单板系统运行环境限制;
缺点:某些主流的测试软件功能需要编译到该专用单板的服务进程中才能执行。
2. 方案二将Python解释器移植到该专用单板系统环境运行,使得Python脚本可以直接在该专用单板环境中执行。
优点:可以有效利用主流的测试软件对核心模块进行测试;
缺点:该专用单板系统运行环境中执行的程序,需要使用交叉编译链编译
方案一已经在某些测试场景中运用,本文主要介绍方案二中,如何通过该专用单板交叉编译链生成Python解释器,以便在该专用单板系统环境运行。
三、实践情况
1. 下载安装交叉编译链
2. 下载解压Python源码包
3. 设置交叉编译环境
4. 执行编译安装
5. 可执行程序打包
6. 问题及解决办法
1) Configure执行失败解决办法:2) Make告警编译部分模块失败(option)解决办法:使用交叉编译链编译安装bzip2、readline等开发包。
四、效果评价
通过交叉编译链编译Python,生成的可执行程序可以在该专用单板环境执行Python脚本。进而通过Python编写的测试脚本可以直接在该专用单板上执行。
推广建议本文移植的Python可以在该专用单板等相同系统平台上运行,以便Python编写的测试或者系统管理脚本在单板上执行,该方法具备一定的普适性。
一、问题的提出
某产品基于专用单板实现,出于系统优化考虑,该单板上只提供了精简的操作系统配置,从而导致python脚本在该单板上无法运行。
如果能够实现在该专用单板上直接运行python脚本,就可以隔离前端接入模块,直接测试本模块以及底层模块功能的正确性。
二、解决思路
1. 方案一
Python脚本使用USHELL远程登录到该专用单板,通过调试命令执行预先编写的测试函数并获取返回结果。
优点:脚本编写不受该专用单板系统运行环境限制;
缺点:某些主流的测试软件功能需要编译到该专用单板的服务进程中才能执行。
2. 方案二将Python解释器移植到该专用单板系统环境运行,使得Python脚本可以直接在该专用单板环境中执行。
优点:可以有效利用主流的测试软件对核心模块进行测试;
缺点:该专用单板系统运行环境中执行的程序,需要使用交叉编译链编译
方案一已经在某些测试场景中运用,本文主要介绍方案二中,如何通过该专用单板交叉编译链生成Python解释器,以便在该专用单板系统环境运行。
三、实践情况
1. 下载安装交叉编译链
2. 下载解压Python源码包
3. 设置交叉编译环境
4. 执行编译安装
5. 可执行程序打包
6. 问题及解决办法
1) Configure执行失败解决办法:2) Make告警编译部分模块失败(option)解决办法:使用交叉编译链编译安装bzip2、readline等开发包。
四、效果评价
通过交叉编译链编译Python,生成的可执行程序可以在该专用单板环境执行Python脚本。进而通过Python编写的测试脚本可以直接在该专用单板上执行。
推广建议本文移植的Python可以在该专用单板等相同系统平台上运行,以便Python编写的测试或者系统管理脚本在单板上执行,该方法具备一定的普适性。