Python pyinstaller 打包成exe程序太大问题解决办法
- 原因:
- 方法:
-
- 1.安装创建虚拟环境的程序virtualenv
- 2.创建虚拟环境
- 2.进入虚拟环境
- 3.开始打包
- 附有关PyQt5将会遇到的问题
原因:
pyinstaller 在打包程序时总是会吧你当前环境下的所有第三方包全部打包进去,所以实际上一般你的程序都能打包的更小,解决也就是要剔除一些无用的库,以下叫你如何使你的exe打包最小
方法:
以下所有命令均是在cmd下使用
1.安装创建虚拟环境的程序virtualenv
1.打开终端命令窗口win+r 输入cmd回车,或者在你想建立虚拟环境的文件夹下在上方的路径框内输入cmd回车即可在当前文件夹下使用终端命令
2.首先使用如下命令安装创建虚拟环境的程序
pip install virtualenv
2.创建虚拟环境
然后就可以创建虚拟环境了,但也要为虚拟环境建立一个文件夹(位置可以自己随意定),我这里文件夹名为virtual_env。如下命令创建一个文件夹(虚拟环境)
virtualenv virtual_env(文件夹名自己定义)
然后进入刚才创建的文件夹,会发现里面有下面两个文件夹
进入文件夹使用如下命令:
cd virtual_env
2.进入虚拟环境
其中Lib里面是当前虚拟环境的第三方包的存放位置,Scripts是你的运行环境,此时进入Script文件(cd Scripts)夹输入以下命令即可进入当前的虚拟环境
activate
3.开始打包
此时可以使用命令
pip list
你会发现当前环境下的包比你之前环境的包少了太多,这时候你pip安装第三方库的时候都会安装在这个虚拟环境下,安装完你程序必须用的一些包后就可以使用pyinstaller打包程序了,此时打包的程序就是最小的了。
例如:
pyinstaller -F -w test.py
附有关PyQt5将会遇到的问题
当程序使用到PyQt5这个模块的时候这时候你在虚拟环境下运行程序或者打包程序会报错,类似以下错误,
qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""
原因:因为pyqt5运行需要安装包下一些模块的支持,程序在运行的时候会调用这个模块,因为这个虚拟环境你是刚刚创建,所以程序在调用的时候找不到这个模块,此时需要进入pyqt5安装包内如下目录,这个安装包是你虚拟环境下的安装包(不要进错了),
然后将以上完整路径加入到环境变量内,需要新建一个环境变量
变量名为:
QT_QPA_PLATFORM_PLUGIN_PATH
此时重启计算机再次进入虚拟环境即可正常运行和打包程序