2

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 が機能している場合、次の行に気付くことがあります: Missing modules: ? zmq.devices.basedevice からインポートされた zmq.core.Context ? zmq.devices.monitoredqueuedevice からインポートされた zmq.core.FORWARDER ? zmq.devices.monitoredquedevice からインポートされた zmq.core.QUEUE ? zmq.devices.monitoredquedevice からインポートされた zmq.core.ZMQError

私はこの問題を 1 時間か 2 時間解決しようとしてきましたが、インポートする必要がある DLL に関連している可能性がありますが、そうではありません。ZMQ が動作する必要のある DLL がいくつかありますが、それがどれかわかりません。

4

2 に答える 2

0

インクルードに 1 つ以上のモジュールを明示的に追加する必要がある場合があります。ただし、DLL の問題である場合は、通常、Dependency Walker を使用して解決します。こちらから無料で入手できます: http://www.dependencywalker.com/

ときどき誤検知がありましたが、全体的にはほとんどの場合役に立ちました.

于 2012-07-06T20:13:05.643 に答える