我是使用pyqtgraph、pyqt5以及numpy等写了一个GUI文件,在打包的过程中出现了太多太多的问题,自己解决了两天,不得已求助本科大佬同学,经过20多个小时的奋战,终于解决了所有的问题。接下来为了纪念解决了长达五天的bug,总结一下。
先说一下我的问题,我电脑里有很多的python版本,而且我进行打包的时候,打包的位置也很随意,例如,win + R,或者直接在要打包的.py文件夹下cmd。
打包的时候找的是你安装pyinstaller的所有的包。但这个包可能与软件main_GUI本身是不匹配的。
首先我们要明确的是每一个conda环境都有一套自己的体系在里面,不管是编译还是运行或者打包什么的都是一套,各个组件什么型号都是配套的。
因此,我们需要创建一个属于打包文件的conda环境!!!
1、在是使用我接下来的方法之前,电脑里需要安装Anaconda,且能正确运行Anaconda Prompt
这个base里面包含了几乎所有我们需要的包,这就会导致我们在生成exe文件的时候,把很多包(需要的不需要的)压在里面,很小的功能,但是文件非常大,我的就有300多M。
对于这个问题我们的解决方法是创建一个什么包都没有的conda环境,仅仅把我们需要的包压在里面,这样exe文件非常小,我的从300多M转换为49M。
2、在当前文件夹里,使用 virtualenv [环境名]命令,若没有virtualenv,使用
pip install virtualenv 安装一下。接下来的演示都在E盘下的software里操作。
安装成功以后,继续创建新的环境。
出现一个我们创建的文件夹。
里面有两个文件,我们进入到Scripts里面,使用 activate 命令。
使用 pip list命令查看Demo环境里的安装的包,很少,几乎没有。
我是要使用pyqt5 pyqtgraph的,于是安装这俩,一定不要忘了安装我们打包的命令包:pyinstaller。
执行完以后,就可以去打包我们的GUI程序了。具体的打包命令很多博主都有介绍!
但是要注意,要将路径转移到我们要打包的.py文件夹下
我使用的是:
pyinstaller -F -w main_GUI.py 基本打包命令
pyinstaller -F -w -i logo.ico main_GUI.py 改变图标
在dist文件夹里,就有我们的exe文件啦。
如果执行改变图标的命令,一定要注意 .ico文件,不能单纯的改个后缀名就行,我一开始就这样,就会报错,需要专门的在线转换工具,16 × 16即可。成功以后还没变的话,把exe文件复制出来就能变啦。
五天的时间,代码人太难了,希望这篇博客对大家有帮助!!!