pyinstaller 生成的包为什么那么大?
pyinstaller 会把打包时的 python 环境中安装的所有库包都打包到生成的包中,我们日常编程的 python 环境日积月累地安装了各种 python 库,尤其是通过 Anaconda 平台安装的 python,集成的包就更多。并且 Anaconda 有一个 base 环境,编程虚拟的环境没有安装的库,有时会到 base 环境中去查找。所以,不要在 Anaconda 的虚拟 python 环境中打包。在 Anacodna python 环境中打包,失败的概率超过80%,并且生成的包一般都超过 800 MB,有的甚至达到 1.2 GB。这么大的包有点吓人!
怎样让 pyinstaller 生成的包最小?
创建一个独立的打包环境
,在打包环境
中仅安装必须的包,既能让 pyinstaller 生成的包尽可能的小,还能大大提高打包的成功率。
相应的,我们把开发脚本的python环境称之为开发环境
。
找到并安装你的程序运行必需的包
请按照如下步骤找到你的脚本运行必需的包:
- 确认你的 python 脚本在你的 python 开发环境中运行正确。
- 再在你的
打包环境
中运行 你的脚本,会出现类似下图这样的错误:
- 查看你开发环境中相应包的版本号,比如,我的 开发环境中的 wxPython 版本为 4.0.7;
- 在你的
打包环境
中安装 wxPython 4.0.7,
注意:安装与开发环境相同的版本号。 - 重复步骤2,3,4,安装脚本运行所有必需的包;
- 直到在
打包环境
中运行你的脚本正确。
打包测试
在你的打包环境
下,转到要打包的脚本目录下。运行最基本的 pyinstaller 命令。
这样操作,打包的成功率大大提高,并且生成的包最小。我开始在 Anaconda 环境下打包生成的包超过800MB,并且生成的 exe 程序运行失败。
按照前面的步骤打包,生成的包仅 30 MB,且一次成功!
有任何问题欢迎到 Ptyhon草堂 QQ群:457079928 交流!