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

How to reduce cx_Freeze compiled Python executable size?

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

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

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

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

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