关于python:’frozenset’对象不可调用

'frozenset' object is not callable

当我尝试在任何上下文中导入hashlib时,它会抛出此错误:

1
2
3
4
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和Microsoft Visual C ++ Compiler for Python 2.7,它们是Hashlib所必需的


在使用hashlib的pip安装失败并使用easy_install重新尝试之后,我遇到了在OSX(El Capitan)上安装hashlib的问题。事件发生后,我只是调用pip时出错,更不用说加载hashlib了。

根本原因是pip将错误的egg目录路径添加到我的sys.path和PYTHONHOME:

1
2
3
>>> 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']

要修复,您可以删除直接引用的文件,在我的情况下:

1
rm /Library/Python/2.7/site-packages/hashlib-20081119-py2.7-macosx-10.11-intel.egg

我尝试删除目录引用,但在此处探索以识别属于我的当前python版本的site.py和site_packages.py文件,该文件定义了您的路径,然后查看了site_packages.py从哪里加载其路径,它出现了特定的参考是由pip直接添加的?因此,我能想到的唯一解决方法是在site.py结尾处对一行进行硬编码以删除引用,这是我在其他线程上看到的。


我找到的最佳解决方案是:
https://stackoverflow.com/a/40259767/3689574

它允许使用pip安装hashlib而没有任何问题。


我在Fedora 29上也有同样的信息。

我最后用easy_install hashlib安装,但是,我必须先执行以下步骤:

1
dnf install python2-devel