19

当我尝试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

4

5 回答 5

13

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

我还必须在 Windows 上为 Python 2.7 安装 Scipy 和Microsoft Visual C++ 编译器,它们是 Hashlib 所必需的

于 2016-04-01T17:19:04.167 回答
3

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

根本原因是 pip 在我的 sys.path 和 PYTHONHOME 中添加了一个错误的 egg 目录路径:

>>> 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 文件后,它定义了您的路径,然后查看了 site_packages.py 从哪里加载其路径,它似乎那具体的引用是pip直接加的吗?所以我能想到的唯一解决方法是在 site.py 末尾可能硬编码一行以删除我在其他线程上看到的引用。

于 2016-05-18T14:01:12.600 回答
2

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

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

于 2016-10-26T10:29:26.733 回答
1

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

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

dnf install python2-devel
于 2019-04-05T12:28:01.070 回答
0

在 Mac OS 上,我通过安装它easy_install hashlib来修复它pip install hashlib

于 2021-03-26T10:36:46.670 回答