Python用pyinstaller打包第三方库
前言
1.环境:python3.6;
2.程序所涉及第三方库matplotlib等;
一、pyinstaller介绍
1)作用
1)pyinstaller能将python程序转换成单个可执行文件(.exe);
2)操作系统支持Windows, Linux, Mac OS X,Solaris和AIX。并且很多包都支持开箱即用,不依赖环境;
2)安装方法
在cmd里pip install pyinstaller
3)pyinstaller参数介绍
4)使用方法
1.标准:
注意是在cmd中使用
pyinstaller -F -w -i C:\Users\lenovo\Desktop\flower\flower.ico C:\Users\lenovo\Desktop\flower\flower.py
2.说明:
[1]这里使用了绝对路径打包flower.ico和flower.py两个文件。其中flower.ico是配合-i参数的,是用于生成exe的图标。而flower.py是需要打包的python程序;嫌麻烦不想添加图标去掉-i参数和第一个路径亦可正常打包。
[2]当cmd的路径是与.ico和.py文件处于一个文件夹中时,可以不需要使用绝对路径,直接用相对路径即可;
pyinstaller -F -w -i flower.ico flower.py
5)泣血,使用中遇到的天坑
- 问题一:打开cmd后使用默认路径直接打包,会报错。原因不清楚,但有解决办法;
使用默认路径会报错
解决办法:创建一个文件夹,放入待打包.ico和.py文件,cmd中路径切换到该文件夹下再打包;
2.问题二:打包成功后exe文件运行失败。原因是程序中使用了其它第三方库,没有打包其运行需要的相应module。
解决办法:再pyinstaller打包过程中,仔细阅读info、error、warning等信息,缺少哪个module就去pip安装哪个;
eg:这朵花是使用matplotlib花的,打包后提示缺少相关的PyQt4和PySide等等module;
我就使用pip指令安装这些modlue。但是pip安装失败了。
原因是Python中最头疼的包版本和python版本的不匹配问题。
PyQt4和PySide与我的python3.6不匹配,于是通过安装PyQt5和pyside2替代解决了,也没有
报错;
3.问题三:由于exe可能会运行失败,建议调试时不要使用-w参数隐藏控制台,这样会导致看不见报错信息。但是报错信息可能会一闪而过
解决办法:在cmd中打开此exe程序,报错信息就不会一闪而过。- 问题四:-w参数使用失败,去掉-w参数却能打包成功。俺嫌麻烦,没试。不带-w参数解决了问题。。。。。。。
解决办法:链接
二、代码
知乎上看见的,觉得有意思自己实践了一下。
源码链接
三、运行结果
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。