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



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

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

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

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

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

最新更新