我用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(或者可以单独安装(,并且想要分发你的程序,使二进制大小变小,那么轮子更合适。