我使用cx_Freeze编译了一个Python程序。Python代码本身只有195行。然而,我的编译程序大小达到了500 MB。我使用了matplotlib、numpy和pymsgbox库,不知道这些库是否对编译后的程序大小产生如此大的影响。 这个出乎意料的文件大小的原因是什么?有没有办法减小可执行文件的大小?
cx_Freeze 的部分目的是捆绑所有依赖项,以便最终用户无需安装它们。 numpy、matplotlib 等不算小的依赖项,尤其是它们有大量二进制(非 Python)组件。因此,你所要求的实际上是不可能的,这不是因为 cx_Freeze 的限制,而是因为以下两个要求之间存在矛盾: 最终用户应该能够在几乎任何 Windows 机器上运行可执行文件,包括可能没有 Python、numpy 和 matplotlib 的机器 分发的二进制文件大小应该很小 你不能同时满足这两个要求。cx_Freeze 适用于第一个要求,但不适用于第二个要求。如果你可以假设你的最终用户已经安装了 Python、numpy、matplotlib(或可以单独安装),并且想要分发你的程序以使二进制文件大小很小,则 wheel 更合适。