问题描述
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 固有的错误。
虽然提供的下载轮子的链接不再有效,但补丁已添加到最新的开发版本(如果我没记错的话,是 6.6.0)。可以直接从github安装,如下:
python -m pip install git+https://github.com/marcelotduarte/cx_Freeze.git
这样做为我修复了错误(并使我能够发现我必须处理的其他错误!)。