python - Windows 和 ZMQ 上的 CX_Freeze 导入错误

标签 python cx-freeze pyzmq

我有一个使用 ZMQ 的 python 程序。我想卡住它,这样每个人都可以将它用作可执行文件。这是我的 setup.py

import sys

from cx_Freeze import setup, Executable
includes = ["sip", "re", "zmq", "PyQt4.QtCore", "atexit", "zmq.utils.strtypes", "zmq.utils.jsonapi", "encodings.hex_codec"]

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

setup (
    name = "prueba",
    version = "0.1",
    description = "Esto es una prueba",
    options = {"build_exe" : {"includes" : includes }},
    executables = [Executable("Cliente.py", base = base)])

当我在 Linux 上运行它时,它运行完美,我的程序运行正常,但是当我在 Windows 上运行时,当我执行 .exe 文件时出现以下错误:

from zmq.core import (constants, error, message, context,
File "ExtensionLoader_zmq_core_error.py", line 12, in <module>
ImportError: DLL load failed: The specified module cannot be found

此外,当 CX_Freeze 工作时,我可以注意到以下几行: 缺少模块: ? zmq.core.Context 从 zmq.devices.basedevice 导入 ? zmq.core.FORWARDER 从 zmq.devices.monitoredqueuedevice 导入 ? zmq.core.QUEUE 从 zmq.devices.monitoredquedevice 导入 ?从 zmq.devices.monitoredquedevice 导入的 zmq.core.ZMQError

我已经尝试解决这个问题一两个小时了,看起来它可能与它应该导入的 DLL 有关,但事实并非如此。 ZMQ 需要工作的一些 DLL,但我找不到它是哪个。

最佳答案

通过添加修复:

['zmq','zmq.utils.garbage','zmq.backend.cython']

到包中,然后将zmq.libzmq.pyd重命名为libzmq.pyd

关于python - Windows 和 ZMQ 上的 CX_Freeze 导入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11368330/

相关文章:

python - 视频播放比预期快很多

python - 在保留颜色的同时将 3 channel 16 位图像转换为 8 位

python - 如何构建 matplotlib、tkinter 后端、与 cx-freeze 一起使用的 GUI?

python - cx_freeze 如何编译 Python 脚本?

python - 使用 cx-freeze 时没有名为 bs4 的模块

python-asyncio - FastAPI如何将ZMQ添加到事件循环

python - django 多选浏览器按钮,形式类似于 html

python - 生成日期之间缺失的连续日期

python - 如何使用 zmq/zeromq 从传递给 python 的字符串表示(字节数组)中获取整数/ float ?

go - 什么是正确的 ZMQ 模式?