首页 > 解决方案 > 如何减少 cx_Freeze 编译的 Python 可执行文件大小?

问题描述

我已经用cx_Freeze. Python 代码本身只有 195 行长。但是,我编译的程序是500 MB。我使用matplotlib,numpypymsgbox我不知道我的库是否会影响我编译的程序大小。

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

标签: pythonexecx-freeze

解决方案


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

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

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


推荐阅读