2016-07-22 12 views
0

私の同僚は、一緒に作業しているPythonアプリケーションをビルドする際に問題が発生しています。 EnthoughtキャノピーのPython 2.7.6、matplotlibの1.4.2を使用して、matplotlibのpyinstaller backend_wxaggとhashlib md5

print "before import" 
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg 
print "after import" 

我々は両方とも同じ共有コンピュータ(RHEL 6.6)に取り組んでいる:私たちは、問題を特定し、次のコードで複製することができました、およびpyinstaller 3.2。楽しみが始まるのはここ

です:

  • 我々は両方のソースからpython test.pyを介してこれを実行することができ、そして予想通り、それは正確に動作します。
  • 私はpyinstaller test.pyを使用して実行可能ファイルを生成することができますが、不足している.soとは別に、すべてがうまく動作します。
  • 私の同僚がpyinstaller test.pyを試行した場合、実行ファイルは苦情なしで生成されますが、実行しようとすると次のエラーメッセージが表示されます。

エラー:

[[email protected] test]$ ./test 
ERROR:root:code for hash md5 was not found. 
Traceback (most recent call last): 
    File "hashlib.py", line 139, in <module> 
    File "hashlib.py", line 91, in __get_builtin_constructor 
ValueError: unsupported hash type md5 
ERROR:root:code for hash sha1 was not found. 
Traceback (most recent call last): 
    File "hashlib.py", line 139, in <module> 
    File "hashlib.py", line 91, in __get_builtin_constructor 
ValueError: unsupported hash type sha1 
ERROR:root:code for hash sha224 was not found. 
Traceback (most recent call last): 
    File "hashlib.py", line 139, in <module> 
    File "hashlib.py", line 91, in __get_builtin_constructor 
ValueError: unsupported hash type sha224 
ERROR:root:code for hash sha256 was not found. 
Traceback (most recent call last): 
    File "hashlib.py", line 139, in <module> 
    File "hashlib.py", line 91, in __get_builtin_constructor 
ValueError: unsupported hash type sha256 
ERROR:root:code for hash sha384 was not found. 
Traceback (most recent call last): 
    File "hashlib.py", line 139, in <module> 
    File "hashlib.py", line 91, in __get_builtin_constructor 
ValueError: unsupported hash type sha384 
ERROR:root:code for hash sha512 was not found. 
Traceback (most recent call last): 
    File "hashlib.py", line 139, in <module> 
    File "hashlib.py", line 91, in __get_builtin_constructor 
ValueError: unsupported hash type sha512 
before import 
Traceback (most recent call last): 
    File "test.py", line 3, in <module> 
    File "/u/username/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/PyInstaller-3.2-py2.7.egg/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module 
    exec(bytecode, module.__dict__) 
    File "matplotlib/backends/backend_wxagg.py", line 7, in <module> 
    File "/u/username/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/PyInstaller-3.2-py2.7.egg/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module 
    exec(bytecode, module.__dict__) 
    File "matplotlib/figure.py", line 38, in <module> 
    File "/u/username/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/PyInstaller-3.2-py2.7.egg/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module 
    exec(bytecode, module.__dict__) 
    File "matplotlib/colorbar.py", line 36, in <module> 
    File "/u/username/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/PyInstaller-3.2-py2.7.egg/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module 
    exec(bytecode, module.__dict__) 
    File "matplotlib/contour.py", line 27, in <module> 
    File "/u/username/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/PyInstaller-3.2-py2.7.egg/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module 
    exec(bytecode, module.__dict__) 
    File "matplotlib/texmanager.py", line 49, in <module> 
ImportError: cannot import name md5 
Failed to execute script test 

明らかに、何かが私たちの環境がセットアップされ、そして何かがpyInstallerので一緒に引っ張っなっていないかで異なっています。私はそれが何であるか把握できません!私たちは、hashlibとmd5の両方を隠しインポートとして追加しようとしましたが、無駄です。

答えて

0

cx_Freezeでフリーズしたバイナリを作成しようとしたときに同じエラーが発生しました。 hashlib.pyのパッチのように多くの必死のハックを試した後、私は最終的にhashlibを除外してエラーメッセージを取り除きました。 cx_Freezeで

ようだ:私はpyinstallerもライブラリを除外するためのオプションを提供しているとし

… 
excludes = ["collections.abc", "tcl", "tk", "OpenGL", "scipy", "hashlib"] 

build_options = { 
    "packages": packages, 
    "includes": includes, 
    "include_files": include_files, 
    "excludes": excludes, } 
… 
setup(name=…, 
    version=…, 
    description=…, 
    options=dict(build_exe=build_options, 
       install_exe=install_options), 
    executables=executables) 

私は現在、numpyバージョンの矛盾に関する他のエラーに苦しんでいます。そのため、エラーの解消が問題の解決を示していることを100%確認できません。