如何减少 cx_Freeze 编译的 Python 可执行文件大小?

Posted

技术标签:

【中文标题】如何减少 cx_Freeze 编译的 Python 可执行文件大小?【英文标题】:How to reduce cx_Freeze compiled Python executable size? 【发布时间】:2019-12-10 03:46:27 【问题描述】:

我用cx_Freeze 编译了一个Python 程序。 Python 代码本身只有 195 行长。但是,我编译的程序是 500 MB。我使用matplotlibnumpypymsgbox,我不知道我的库是否会影响我编译的程序大小。

这种意外文件大小的原因是什么?有没有办法减少我的可执行文件的大小?

【问题讨论】:

我注意到 Pyinstaller 在使用 pandas 和 numpy 时文件大小要小得多。我不知道为什么 【参考方案1】:

cx_Freeze 的部分目的是捆绑所有依赖项,以便最终用户无需安装它们。 numpymatplotlib 等都是不小的依赖项,尤其是因为它们有很大的二进制(非 Python)组件。所以你问的在物理上是不可能的,不是因为 cx_Freeze 的限制,而是因为以下两个要求之间的矛盾:

最终用户应该能够在基本上任何 Windows 机器上运行可执行文件,包括可能没有 Python、numpy 和 matplotlib 的机器 分布式二进制大小应该很小

您不能同时满足这两个要求。 cx_Freeze 适用于第一个,但不适用于第二个。如果您可以假设您的最终用户已经安装了 Python、numpy、matplotlib(或可以单独安装),并且希望分发您的程序以使二进制文件变小,那么使用***更合适。

【讨论】:

以上是关于如何减少 cx_Freeze 编译的 Python 可执行文件大小?的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 cx_Freeze 编译

尝试使用 cx_Freeze 编译时 Python 崩溃

Python 3.2:cx_freeze 编译我的程序,但处于调试模式

带有 cx_freeze 的 python 3.2 tkinter 图标

运行使用 cx_freeze 编译的 exe 时如何查看错误消息?

在 cx_Freeze 编译后打开图片