当我尝试在任何上下文中导入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
来生成此错误。
答案 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