1.背景
通过python使用pyqt编写了一个界面程序,并使用pyinstaller将其打包成exe文件
2.问题
打包的exe文件非常大,有280M,而且更无法忍受的是打开非常非常的慢!!!
3.解决办法
(1)将import改为from...import...
尝试之后,并么有什么用,依然是非常非常的大,非常非常的慢。
(2)anaconda的问题(亲测确实可以280M缩小到72M,速度也从几分钟到十几秒)
看网上有人说是anaconda的问题,应该安装纯净的python,不装anaconda,因为anaconda包太多,在打包的时候,你的exe会集成很多不必要的包,从而导致exe文件太大。因为集成了很多不必要的包,而exe在打开时会先加载依赖,从而导致文件打开慢!
因此,用虚拟机装了win7,在win7上安装纯净的python,网址:/,如果下载太慢可以复制链接,在迅雷中下载python.exe。
将文件拷贝到win7上,用python执行,会看到缺少各种包,再根据提示pip安装各种包即可,直到在win7上成功运行你的项目。pip国内镜像安装包:
pip install 包名 -i https://pypi.tuna./simple/
之后是重头戏!!!
pip 安装pyinstaller,然后在你的项目下:
pyinstaller -F XXX.py
成功之后在dist文件下会有XXX.exe文件
可以发现exe文件大大减小,而且打开也快多了!!!(280M缩小到72M!!!)
如果不想显示win的控制台,可以执行:
pyinstaller -F -w XXX.py
建议刚开始还是显示控制台,因为这样可以在控制台看到错误信息的提示!!!,对于一闪就退的问题,可以使用手机录像功能,记录错误,方便查看!!!
4.附录
(1)win7无法安装python
这是因为win7版本过老,只需在windows update更新一下即可!
(2)scipy打包出错
pyinstaller 在打包时,生成的exe文件无法打开,查看了一下错误,是因为scipy的原因。
原来的scipy的版本是1.3.3,我觉得是版本太高了,就卸载了,重新安装scipy==1.0.0
成功打包!!!
(3)无访问权限
我原来把python安装在了C盘的Program Files里面,结果发现,经常出现无访问权限的问题,因此又卸载重新安装在了其他位置,没有问题了。