' frozenset'对象不可调用

时间:2015-12-04 07:53:12

标签: python python-2.7 hashlib 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来生成此错误。

5 个答案:

答案 0 :(得分:10)

昨天我遇到了同样的问题,Hashlib没有安装,尝试使用pip安装它会产生错误。我通过使用easy_install安装它来修复它。

此外,我必须在Windows上安装Scipy和Microsoft Visual C++ Compiler for Python 2.7,它们是Hashlib所必需的

答案 1 :(得分:3)

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

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

>>> 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

我尝试删除目录引用,但在浏览here以识别属于我的当前python版本的site.py和site_packages.py文件(定义路径)后,查看site_packages.py的位置加载它的路径,看来特定的引用是由pip直接添加的?因此,我能想到的唯一解决方法是在site.py末尾对一行进行硬编码,以删除我在其他线程中看到的引用。

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

我在Fedora 29上也收到了同样的消息。

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

dnf install python2-devel

答案 4 :(得分:0)

在 Mac OS 上,我通过安装 easy_install hashlib 而不是 pip install hashlib