Linux可执行文件制作

Linux可执行文件制作

背景

测试过程中,需要针对不同的Linux系统、核心服务版本进行验证,各种环境依赖的python版本以及已安装的库存在较大差异,考虑到实际测试需求以及出差现场使用的要求,需要将测试脚本打包为可执行文件,可以最大程度上减少依赖,保障测试程序的可用性和易用性。本文介绍一种利用python的pyinstaller库,将程序打包为可执行文件的方式,脱离自动化工程或复杂的环境配置。后半部分针对一些固有化的实现进行介绍,希望对大家有所帮助。

环境配置

当前使用的编程语言为python3,建议在测试服务器上安装python3,将能够更好地进行兼容。

Python3环境安装问题

  可参考https://wiki.hikvision.com.cn/pages/viewpage.action?pageId=49800240

Pyinstaller安装及使用

安装

(1)方式一:直接用pip安装

pip install pyinstaller

(2)方式二:源码安装

下载pyinstaller安装包后执行以下命令手动安装:

tar -zxvf PyInstaller-3.6.tar.gz

cd PyInstaller-3.6/

python3 setup.py build

python3 setup.py install

如果输入 pyinstaller 命令可以直接使用,那就可以了。

  • 问题1:输入pyinstaller命令提示 command not found

解决方式:复制pyinstaller到/usr/bin/下

cd /usr/local/python3/bin/

cp pyinstaller /usr/bin/.

  • 问题2:python setup.py build报错

  • 解决:需要升级setuotool的版本

wget https://pypi.python.org/packages/41/80/268fda78a53c2629128f8174d2952c7f902c93ebaa2062b64f27aa101b07/setuptools-38.2.3.zip#md5=0ae64455d276ff864b40aca9c06ea7c1

unzip setuptools-38.2.3.zip

cd setuptools-38.2.3

python setup.py install

 

  • 问题3:包依赖关系处理

在linux下安装rpm包的时候发现,安装一个服务需要安装很多rpm包,比如安装apache,最少需要安装3-4个包,当然主包只有一个,其中还有好多依赖关系,甚至会出现循环依赖的“死锁”。为了避免包之间的依赖关系问题,可以采取同时安装所有有关rpm包的方式:

rpm -ivh xx1.rpm xx2.rpm xx3.rpm

 

使用

  Pyinstaller使用方法:

rpm -ivh xx1.rpm xx2.rpm xx3.rpm

 

  • 打包成功后有缺失包

安装时,wheel库通过python setup.py build & python setup.py install 安装失败。需要先将wheel文件下载到本地,然后pip install ...wheel。
资源链接:各种python wheel文件

 

  • 包缺失

问题:python用pyinstaller打包时,打包的py文件中有import paramiko,打好包后的文件执行时提示,No module named paramiko。

解决:添加一个-p的参数。如:

pyinstaller -F xx.py -p paramiko

 

  • Hidden-import
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值