Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑
我们使用PyQt开发出来GUI了,很重要的一步就是将它打包成可执行文件,便于他人的使用,今天就配置一下在windows下打包windows下的可执行文件(.exe文件)。
先看一下我使用的电脑的系统属性:
1.安装pywin
我是直接在官网上下载的,链接地址(64位):
https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/pywin32-220.win-amd64-py3.5.exe/download?use_mirror=jaist
其它位数的版本可以在这下载:
https://sourceforge.net/projects/pywin32/files/
下载完成后直接双击该文件,一直点击下一步直到安装完成。安装路径选择你pyqt的安装路径就好了。这个没有啥问题的。我的路径对于关系是这样的:
2.安装pyinstaller
方法一:使用pip安装的(不建议使用)
pip install pyinstaller
报了一个小问题:
那就升级一下pip,
继续安装
方法二:源码安装
直接去gitHub上下载源码,注意找合适的版本。我用的是3.3.1。然后cd到该目录下,
python setup.py install
安装好了如图:
至此,这个就安装的差不多了。
3.使用pyinstaller打包文件
cd 到你的项目文件里pyinstaller -[opts] xxx.py
这个地方只需要打包你的主文件就好了,至于你这个文件import了多少个其它其它文件,这个没有关系的。
可选的几个简答的opts有:
-F, –onefile 打包成一个exe文件。 -D, –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)。 -c, –console, –nowindowed 使用控制台,*面(默认) -w, –windowed, –noconsole 使用窗口,无控制台-i ,image.ico -i表示图标,图标格式是.ico
打包一下我自己的py文件:
pyinstaller -w -F serial_gui_main.py
看一下我们的项目目录:
dist下面就有我们需要的可执行文件:
我们双击一下试试:我曹报错了
解决方法:这个还是很简答的,少了配置库文件:
我们添加环境变量:
位置就是:PyQt5的plugins文件夹所在位置。每个人的可能不一样。
删除掉刚才在项目里面生成的那两个文件夹:dist和build。继续:
pyinstaller -w -F serial_gui_main.py
在点击生成的.exe。成功了:
至此,我在自己的电脑上是没有任何问题了。在别人的电脑上还没有测试。
但是坑还是继续的:
这是一个常见的错误
这个一般是pyinstaller的版本有问题,一般在是gitHub上下载3.4的版本就会出现这个问题,按理说最新的版本是没有啥问题的,但是确实这个路径不对。具体怎么配置这个路径,我也一直还没有搞出来,最后不得已换了版本。有做出来的,欢迎留言,我们互相学习一下。
2.还有的会出现这个错误:
这也是一个恶心的错误。同样的环境在,win7上打包就会出现这个问题。具体啥情况,我还是没有搞出来,最后使用了win10。我也是醉了。
可能这个打包还有问题,只是现在还没有发现,等我在好好试试了,要是还有问题,我再继续发文了。
更多的内容请关注头条号:小5嵌入式。