如何减少 cx_Freeze 编译的 Python 可执行文件大小?
Posted
技术标签:
【中文标题】如何减少 cx_Freeze 编译的 Python 可执行文件大小?【英文标题】:How to reduce cx_Freeze compiled Python executable size? 【发布时间】:2019-12-10 03:46:27 【问题描述】:我用cx_Freeze
编译了一个Python 程序。 Python 代码本身只有 195 行长。但是,我编译的程序是 500 MB。我使用matplotlib
、numpy
和pymsgbox
,我不知道我的库是否会影响我编译的程序大小。
这种意外文件大小的原因是什么?有没有办法减少我的可执行文件的大小?
【问题讨论】:
我注意到 Pyinstaller 在使用 pandas 和 numpy 时文件大小要小得多。我不知道为什么 【参考方案1】:cx_Freeze 的部分目的是捆绑所有依赖项,以便最终用户无需安装它们。 numpy
、matplotlib
等都是不小的依赖项,尤其是因为它们有很大的二进制(非 Python)组件。所以你问的在物理上是不可能的,不是因为 cx_Freeze 的限制,而是因为以下两个要求之间的矛盾:
您不能同时满足这两个要求。 cx_Freeze 适用于第一个,但不适用于第二个。如果您可以假设您的最终用户已经安装了 Python、numpy、matplotlib(或可以单独安装),并且希望分发您的程序以使二进制文件变小,那么使用***更合适。
【讨论】:
以上是关于如何减少 cx_Freeze 编译的 Python 可执行文件大小?的主要内容,如果未能解决你的问题,请参考以下文章
Python 3.2:cx_freeze 编译我的程序,但处于调试模式
带有 cx_freeze 的 python 3.2 tkinter 图标