web-dev-qa-db-ja.com

'frozenset'オブジェクトは呼び出し可能ではありません

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と入力するだけで、このエラーが発生します。

14
Alex Beals

昨日同じ問題が発生しました。Hashlibがインストールされておらず、pipを使用してインストールしようとすると、そのエラーが発生しました。代わりにeasy_installを使用してインストールして修正しました。

また、WindowsにScipyと Python 2.7 のMicrosoft Visual C++コンパイラ)をインストールする必要があり、Hashlibに必要でした

11
Lynob

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の最後にある行をハードコードして削除することでした他のスレッドで見たリファレンス。

3
MariahOnFiah

私が見つけた最良の解決策はこれです: https://stackoverflow.com/a/40259767/3689574

それは問題なくpipでhashlibをインストールすることを可能にします。

1
user3689574

Fedora 29でも同じメッセージが表示されました。

私はeasy_install hashlibでインストールすることになりましたが、最初に次の手順を実行する必要がありました。

dnf install python2-devel
0
Bert