Cx_Freeze 构建不包括 zip 文件中的 python 库

Mck*_*AST 2 python compilation build setup.py cx-freeze

我在处理 cx_Freeze 5.0 时遇到了麻烦:Windows 10 LTSB x64 Python 3.4.4 x86 PyQt5 PyWin32 x86

在我重新安装 Windows10 之前,我从来没有遇到过任何问题...

当我冻结我的 python 应用程序(python setup.py build)脚本时,将整个 python 库复制到 python34.zip 之外。我在 python34.zip 中唯一得到的是 *.pyc 文件(只有这个..但很多)

我不知道为什么它现在不包含 python 库并且没有找到任何选项/配置,它必须自动包含这个......

如果有人可以帮助解决这个问题.. :)

注意:我的 setup.py,简单的 setup.py 文件中没有任何变化,从标准示例复制而来,只包含一个资产文件夹(这个是正确复制的......没有问题)

谢谢 !

cx_Freeze 构建输出

use*_*797 5

升级到 cx_Freeze 5.x 后,我遇到了同样的问题(如果确实是问题)。我相信这里的变更日志中提到了它:https : //cx-freeze.readthedocs.io/en/latest/releasenotes.html

  1. 添加了对在文件系统中而不是在 zip 文件中存储包的支持。有许多软件包假定它们是在文件系统中找到的,如果在 zip 文件中找到,则会产生奇怪的错误。现在的默认设置是将包存储在文件系统中,但是如果已知将包放置在 zip 文件中时它们的行为正常,则可以使用一种方法将它们放置在 zip 文件中。(第 73 期)

(强调我的)该“方法”显然在https://cx-freeze.readthedocs.io/en/latest/distutils.html#build-exe 中有描述,特别是zip_include_packages和zip_exclude_packages选项。

我最终将以下内容作为关键字参数添加到我的 setup() 调用中,这为我解决了这个问题:

options = {"build_exe": {"include_msvcr": True, "include_files": dataFiles, "packages": ["lxml", "idna"], "zip_include_packages": "*", "zip_exclude_packages": ""}},
Run Code Online (Sandbox Code Playgroud)