问题重述
最近写一个小游戏(华容道),代码量不大,主要靠pygame模块实现。代码量不大,所以肯定不是我代码的问题,99.999%是包的引用出了问题。以下是我引用的所有包:
才引用这么几个包,结果打包结果大小200M,这肯定不正常,况且我没有引用任何图片、声音资源。退一步讲,即使引用图片资源也不是打包在exe中的。
寻找问题
在网上看了很多帖子,很多人都有反应打包exe过大的问题,发现大家都有个共同点:都是在ANACODA下安装的pyinstaller。我猜想是pyinstaller打包的时候会将python环境所有已安装的包都打包,才会导致此问题。因为我在看调试信息的时候发现报错中出现了numpy导致的错误,我根本没有引用numpy。pygame与之互引的可能性也不大。因此确定就是python环境导致的问题。
解决问题
- 现有解决方案
https://blog.csdn.net/Hubz131/article/details/82980967/
这个大佬直接解决了问题,尴尬 - 我的解决方案
思路是一样的,都是安装心得python环境,但是我这个针对只用到pygame模块的程序。
-
首先将另一个版本的python安装到与ANACODA不同路径的文件夹中
-
找到安装文件夹,将其中一个pip.exe改成一个不同的名字,我改的pipo.exe
-
配置环境变量(跟着步骤走,不会影响你原来的python,请放心)
下图中,绿色框是你之前的python路径,红色框是你新安装的python路径。(在前的优先级高,所以我说不会影响你原来的python)
-
打开
cmd
,键入命令pipo install pyinstaller
这样,就会调用你新安装的python环境,安装另一个新的pyinstaller。 -
打开新的python文件夹,我这里是
D:/PYTHON/Scripts
(就是你安装新python路径离的Scripts
文件夹下),找到pyinstaller.exe
,还是改名大法,改成一个不同的名称,我改成了pyinstallero.exe
.如图:
- -
现在,你就可以在新的python环境中调用新的pyinstaller了:
pipo install pygame # 先安装pygame
pyinstaller -F hrd.py # 再次打包,会发现速度快了不少,exe也减少到10MB
结果:
这样分享起来就方便多了。
注意
所有路径中最好不要出现中文,代码中也是。
有问题欢迎留言或者1130646208@qq.com,我会很乐意提供帮助!