cx_Freeze 如果涉及包,构建时会抛出错误

cx_Freeze throws an error when building if packages are involved

如果不涉及其他包,

cx_Freeze 成功将 .py 文件转换为 .exe

但是当包含 pandas 时,安装失败并显示此消息:

File "C:\Anaconda\lib\site-packages\cx_Freeze\hooks.py", line 1324, in load_zmq
    libzmq = __import__("zmq", fromlist=["libzmq"]).libzmq
AttributeError: module 'zmq' has no attribute 'libzmq'

这是setup.py的内容:

import sys
from cx_Freeze import setup, Executable

build_exe_options = {"packages": ["pandas"]}

base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(  name = "test",
        version = "0.1",
        options = {"build_exe": build_exe_options},
        executables = [Executable("test.py", base=base)])

到目前为止,我已尝试在 anaconda 中创建一个与 运行 cx_freeze 不同的环境,以查看问题是否会以这种方式自行解决。

感谢任何帮助。

我花了很长时间试图找到这个问题的答案,但幸运的是它可以找到 here。这似乎是 cx_freeze.

固有的错误

虽然提供的下载轮子的link已经失效了,但是补丁已经添加到最新的开发版本(如果我没记错的话是6.6.0)。您可以直接从 github 安装它,例如:

python -m pip install git+https://github.com/marcelotduarte/cx_Freeze.git

这样做为我修复了错误(并使我能够发现我必须处理的其他错误!)。