Python3 用 zip 编译 App Decrease Size?
Posted
技术标签:
【中文标题】Python3 用 zip 编译 App Decrease Size?【英文标题】:Python3 compiled App Decrease Size with zip? 【发布时间】:2019-09-05 14:33:41 【问题描述】:我已经成功编译了一个相当大的应用程序,但是应用程序的大小太大(大约 1 GB)。我意识到几乎一半(400MB)仅来自 2 个模块(PyQt5 和 mpl_toolkits(basemap ))。当然,一种方法是删除您不需要的辅助服务,但在我的情况下我不能,因为我在我的应用程序中使用了所有这些服务。 然后我正在考虑压缩这些模块,但我不知道这是否安全或执行时间是否可行。 那么有没有足够的方法来最小化我的应用程序的大小,如果 ZIP 是唯一的答案,那么在我的脚本中多次导入这样的 PyQt5 女巫的 lib 上执行此操作是否可行?
【问题讨论】:
【参考方案1】:完全有可能做到这一点; Python 一直支持“zipapps”,从 3.5 开始,提供a module, zipapp
, to assist with creating them。
唯一关心的是您的依赖项是否正确压缩运行;大多数都这样做,但有些采用压缩(和鸡蛋等)无法处理的文件系统层依赖项(这些文件的setup.py
文件将声明zip_safe=False
告诉工具不允许它)。带有 C 扩展名的包必须将 zip_safe=True
声明为 the default analyzer assumes C extensions can't be safely zipped (though many can)。
它会稍微减慢启动速度(因为它必须解压缩模块),但它不应该显着减慢运行时间,无论你导入多少次;第一个导入是唯一真正重要的,因为后续导入只是从内部缓存中提取模块的缓存副本 (sys.modules
)。
【讨论】:
以上是关于Python3 用 zip 编译 App Decrease Size?的主要内容,如果未能解决你的问题,请参考以下文章