基于pyinstaller的打包工具的安装与使用

环境

  • Ubuntu 18.04 /Linux

安装

Python 默认并不包含 PyInstaller 模块,因此需要自行安装 PyInstaller 模块,安装 PyInstaller 模块与安装其他 Python 模块一样,使用 pip 命令安装即可。

  • 安装pyinstaller
pip install pyinstaller  或者 pip3 install pyinstaller 


python3 -m pip install pyinstaller # 安装方式有很多种,相对而言,这种是最方便、最快捷的安装方式。

建议使用 pip 在线安装的方式来安装 PyInstaller 模块,不要使用离线包的方式来安装,因为 PyInstaller 模块还依赖其他模块,pip 在安装 PyInstaller 模块时会先安装它的依赖模块。

运行上面命令,应该看到如下输出结果:

Successfully installed pyinstaller-x.x.x # 其中的 x.x.x 代表 PyInstaller 的版本

验证是否安装成功

pyinstaller --version

使用方法

PyInstaller 不仅支持 -F、-D 选项,而且也支持如表 1 所示的常用选项:

表 1 PyInstaller 支持的常用选项
-h,--help查看该模块的帮助信息
-F,-onefile产生单个的可执行文件
-D,--onedir产生一个目录(包含多个文件)作为可执行程序
-a,--ascii不包含 Unicode 字符集支持
-d,--debug产生 debug 版本的可执行文件
-w,--windowed,--noconsolc指定程序运行时不显示命令行窗口(仅对 Windows 有效)
-c,--nowindowed,--console指定使用命令行窗口运行程序(仅对 Windows 有效)
-o DIR,--out=DIR指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件
-p DIR,--path=DIR设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径
-n NAME,--name=NAME指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字

打包程序

  • 创建打包测试程序
touch test.py

vim test.py

print("hello world")
  • 使用pyintsller打包python模块
pyinstaller -F test.py  
  • 执行行可执行程序
 cd dist # 进入dist文件夹

./test # 执行可执行程序,正常来说,会输出hello world

注意:走到这儿,代表你的python程序就可以完整的打包成功了,因为测试文件很简单,没有第三方库。如果有第三方模块,在打包好之后,执行的时候,可能会报错,此时需要第三方模块的路径,根据后续步骤,即可解决。

查看第三方库的目录路径

 python3 -m pip show pyroute2 # 查看pyroute2的目录路径

删除之前打包好的所有相关文件,然后重新打包

 pyinstaller -F set_network_impairment.py -p /home/agora/anaconda3/lib/python3.7/site-packages


 最新命令:
 pyinstaller -p /home/agora/anaconda3/lib/python3.7/site-packages/prettytable --hidden-import external_imp -F ./set_network_impairment.py

打包好之后,进入dist目录 执行

 ./set_network_impairment --ip_local 192.168.3.148 --ul_loss 30
  • 查看生成的可执行程序是否生效
方法一:./set_network_impairment --ip_local 192.168.3.148 --show # 这个会报很奇怪的错误,可以不用管(暂时没研究),但是弱网确实是生效的


方法二:ping www.baidu.com # 在该ip的设备端,通过ping百度,来查看是否生效 ping www.baidu.com

具体的,pyinstaller的使用方法可参考官方文档:https://pyinstaller.readthedocs.io/en/latest/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值