Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

我们使用PyQt开发出来GUI了,很重要的一步就是将它打包成可执行文件,便于他人的使用,今天就配置一下在windows下打包windows下的可执行文件(.exe文件)。

先看一下我使用的电脑的系统属性:

Python3.5+PyQt5下使用pyinstaller将 py打包成 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的安装路径就好了。这个没有啥问题的。我的路径对于关系是这样的:

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

2.安装pyinstaller

方法一:使用pip安装的(不建议使用)

pip install pyinstaller

报了一个小问题:

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

那就升级一下pip,

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

继续安装

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

方法二:源码安装

直接去gitHub上下载源码,注意找合适的版本。我用的是3.3.1。然后cd到该目录下,

python setup.py install

安装好了如图:

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

至此,这个就安装的差不多了。

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

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

看一下我们的项目目录:

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

dist下面就有我们需要的可执行文件:

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

我们双击一下试试:我曹报错了

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

解决方法:这个还是很简答的,少了配置库文件:

我们添加环境变量:

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

位置就是:PyQt5的plugins文件夹所在位置。每个人的可能不一样。

删除掉刚才在项目里面生成的那两个文件夹:dist和build。继续:

pyinstaller -w -F serial_gui_main.py

在点击生成的.exe。成功了:

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

至此,我在自己的电脑上是没有任何问题了。在别人的电脑上还没有测试。

但是坑还是继续的:

这是一个常见的错误

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

这个一般是pyinstaller的版本有问题,一般在是gitHub上下载3.4的版本就会出现这个问题,按理说最新的版本是没有啥问题的,但是确实这个路径不对。具体怎么配置这个路径,我也一直还没有搞出来,最后不得已换了版本。有做出来的,欢迎留言,我们互相学习一下。

2.还有的会出现这个错误:

Python3.5+PyQt5下使用pyinstaller将 py打包成 exe所遇到的坑

 

这也是一个恶心的错误。同样的环境在,win7上打包就会出现这个问题。具体啥情况,我还是没有搞出来,最后使用了win10。我也是醉了。

可能这个打包还有问题,只是现在还没有发现,等我在好好试试了,要是还有问题,我再继续发文了。

 

 

更多的内容请关注头条号:小5嵌入式。