在前面:Python制作小软件——3. 利用PyQt5实现界面中的功能,介绍完了Python中如何呼唤出我们的界面后
最后最重要的就是将我们做好的东西,全部打包成一个.exe
可执行文件。这里我们使用的是PyInstaller进行封装。(查找过许多方法,但是最后还是选择了相对而言最便捷的方法进行封装)
安装PyInstaller
我们还是使用pip进行安装:
pip install PyInstaller
安装完成后,直接打开命令行,输入pyinstaller
,如果显示如下界面,说明安装成功。
然后就可以进行我们小程序的封装了。
初次尝试封装
首先将我们.ui
文件转化来的.py
文件储存在Python的默认路径,然后打开命令行,cd到我们的server.py
文件所在的路径,接着再输入如下命令即可完成.exe
可执行文件的封装。
pyinstaller -F -w server.py
这里解释一下-F
与-w
的含义:
-F
:将所有内容全部打包成一个exe可执行文件,而不会有其它的一些奇奇怪怪的小依赖文件。-w
:运行生成的exe文件时,不会弹出命令行窗口,而是直接弹出我们做的GUI。
运行完之后,桌面上就会弹出一个dist文件夹,然后里面就是一个exe文件了。这时双击。。。
![这里写图片描述](https://img-/0807181908993?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTkyOTUyNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
可怕的事情发生了!发现报错!
然后费劲心思上网搜索原因是因为少了一些依赖,解决方法很简单,只需要找到我们PyQt5库的安装路径,在里面找到plugins\platforms
文件夹就好了,然后复制到生成的exe可执行文件旁边就能打开了。
但问题来了:我的PyQt5安装路径是:C:\Users\Kanny\Anaconda3\Lib\site-packages\PyQt5
里面根本没有所说的plugins
文件夹,这就很尴尬了。(有评论小伙伴说C:\Users\Kanny\Anaconda3\Lib\site-packages\PyQt5\Qt\plugins
中找到了相应的文件,可直接进行安装)
但是不方,我在C:\Users\Kanny\Anaconda3\Lib\site-packages\pyqt5-tools
里面找到了platforms
,然后将它像下图所示,安排的明明白白的(简直被我的机智所吓到):
![这里写图片描述](https://img-/0807182641890?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTkyOTUyNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
双击运行,发现:还!是!报!错!
此时万念俱灭的我决定,再尝试搞出一个有plugins\platforms
的PyQt5库出来,这时候就需要我们重新安装下PyQt5,我装的版本是PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x64-2
,网上搜的到,50多m,然后双击安装它,使用默认路径,会自动覆盖原本的PyQt5(注意将原本的一切与PyQt5有关的程序都关掉再进行安装,包括Python)。下面放上安装包:
PyQt5安装包:链接:/s/1L056oXu6Jl_vAj23rSVW_Q 密码:4i21
再次尝试封装
安装完新的PyQt5就开始跃跃欲试了,首先再看看我们PyQt5目录下有什么了:
发现出现了plugins
文件夹里面有platforms
。
然后重新封装一次exe文件,再将platforms
文件夹完整的拷贝到我们的exe文件旁边,然后双击:
大功告成!
但是旁边的文件大小211m是怎么回事?说好的小软件呢?