1

cxFreeze を使用するプログラムを作成しましたが、cxFreeze でコンパイルしようとすると、次のエラーが発生します。

不足しているモジュール: ? hashlib からインポートされた _md5 ? hashlib からインポートされた _sha1 ? hashlib からインポートされた _sha256 ? hashlib からインポートされた _sha512

エラーが再現しやすいため、cxFreeze は hashlib モジュールと互換性がないように思えます。hashlib をインポートしてコンパイルするだけです。

例: cx_test.py:

import hashlib

setup.py (cxFreeze 用):

import sys
from cx_Freeze import setup, Executable
buildOptions = dict(
        compressed = True,
        path = sys.path)
setup(
    name = "Hashlibtest",
    options =   dict(build_exe = buildOptions),
    includes = ["hashlib"],       
    executables = [Executable("cx_test.py")]
    )

問題を解決する方法はありますか?

Ubuntu 12.04でPython3.2を使用しています

4

1 に答える 1

-1

これは問題ではありません。hashdist のソース コードを見ると、Python が OpenSSL でコンパイルされているかどうかによって、異なるモジュールが使用されています。他のモジュールは、Windows で 1 つをインポートし、Linux で別のものをインポートしたり、Python 2 用に 1 つと Python 3 用に別のものをインポートしたりする場合があります。

これらすべてのケースで、cx_Freeze はすべてのimport xステートメントを認識し、すべてのモジュールを探します。見つからない場合は、そのメッセージが表示されます。しかし、他の問題がない限り、プログラムは生成され、通常は動作します。

以前に hashlib のメッセージを見たことがありますが、結果のプログラムは問題なく動作しました。

于 2012-12-22T12:26:48.087 に答える