减小冻结的 PySide2 脚本的大小

Decreasing the size of a frozen PySide2 script

我目前有一个使用 PyInstaller 从 PySide2 python 程序创建的冻结二进制文件,它最终具有非常大的文件大小。 与 PySide2 window 一样小的带有 Hello World 的脚本可以达到 40MB 以上的大小。

二进制文件中包含许多未使用的 PySide2 绑定,我一直想知道是否有任何现代解决方案可以将它们从冻结的二进制文件中剥离。

经过快速搜索,我只设法从一个名为 PySideKick 的库中找到了一个名为 Hatchet 的工具,但它多年来一直没有维护,可能不适合与 PySide2 或 Python 一起使用 3.

您可以采用多种方法来减少 pyinstalled 的编译文件大小:

  1. 如果你使用anaconda,切换到virtualenv可以显着减少编译文件的大小。我在 pycharm 中创建了一个专门用于编译项目的 virtualenv 环境,它确实很有帮助。 (更多详情:

  2. 您可以使用 pyinstaller 中的 --exclude-module 参数排除您不想编译的特定模块。

  3. 执行上述操作的更好方法是按照此答案中的建议编辑规范文件:

不幸的是,pyinstaller 需要打包 python 解释器和一些其他依赖项,因此文件大小总是比您(或我)想要的大。仔细检查 dist 文件,您的大部分开销实际上来自 PySide。