hashlib
をインポートしようとすると、次のエラーがスローされます。
File "<stdin>", line 1, in <module>
File "build/bdist.macosx-10.11-intel/Egg/hashlib.py", line 115, in <module>
"""
TypeError: 'frozenset' object is not callable
これを解決する方法はありますか?ターミナルを開いてpython
を実行し、次にimport hashlib
と入力するだけで、このエラーが発生します。
昨日同じ問題が発生しました。Hashlibがインストールされておらず、pipを使用してインストールしようとすると、そのエラーが発生しました。代わりにeasy_installを使用してインストールして修正しました。
また、WindowsにScipyと Python 2.7 のMicrosoft Visual C++コンパイラ)をインストールする必要があり、Hashlibに必要でした
Hashlibのpipインストールが失敗し、easy_installを使用して再試行した後、OSX(El Capitan)にhashlibをインストールするときにこの問題が発生しました。イベントの後、hashlibのロードはもちろん、pipを呼び出すだけでエラーが発生しました。
根本的な原因は、不正なEggディレクトリパスをsys.pathおよびPYTHONHOMEに追加するpipでした。
>>> import sys
>>> print sys.path
['', '/Library/Python/2.7/site-packages/pip-8.1.2-py2.7.Egg', '/Library/Python/2.7/site-packages/hashlib-20081119-py2.7-macosx-10.11-intel.Egg', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.Zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', '/Library/Python/2.7/site-packages']
修正するには、直接参照されているファイルを削除できます。
rm /Library/Python/2.7/site-packages/hashlib-20081119-py2.7-macosx-10.11-intel.Egg
私はディレクトリ参照だけを削除しようとしましたが、現在のpythonバージョンに属するsite.pyおよびsite_packages.pyファイルを特定するために here を調べた後、パスを定義します) 、次に、site_packages.pyがそのパスをどこからロードしているかを調べたところ、特定の参照がpipによって直接追加されているように見えるので、考えられる唯一の回避策は、site.pyの最後にある行をハードコードして削除することでした他のスレッドで見たリファレンス。
私が見つけた最良の解決策はこれです: https://stackoverflow.com/a/40259767/3689574
それは問題なくpipでhashlibをインストールすることを可能にします。
Fedora 29でも同じメッセージが表示されました。
私はeasy_install hashlib
でインストールすることになりましたが、最初に次の手順を実行する必要がありました。
dnf install python2-devel