Python - hashlib 的 AttributeError:没有这样的属性:“openssl_md_meth_names”

Python - hashlib 的 AttributeError:没有这样的属性:“openssl_md_meth_names”

我不知道为什么会发生这种情况,但是从源代码安装 python 进行一些疯狂的恢复之后,当任何东西导入 hashlib 时,都会出现类似这样的错误:

Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    load_entry_point('pip==1.5.4', 'console_scripts', 'pip')()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 351, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2363, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2088, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 9, in <module>
    from pip.log import logger
  File "/usr/lib/python2.7/dist-packages/pip/log.py", line 8, in <module>
    from pip import backwardcompat
  File "/usr/lib/python2.7/dist-packages/pip/backwardcompat/__init__.py", line 66, in <module>
    from urllib2 import URLError, HTTPError
  File "/usr/lib/python2.7/urllib2.py", line 93, in <module>
    import hashlib
  File "/usr/lib/python2.7/hashlib.py", line 138, in <module>
    _hashlib.openssl_md_meth_names)
AttributeError: 'module' object has no attribute 'openssl_md_meth_names'

答案1

最有可能的是,您仍然有错误的 hashlib(没有 openssl_md_meth_names 的 hashlib)。它被导入,而不是正确的 hashlib。

以 root 身份执行此操作:

# cd /
# find . | grep hashlib

然后删除(好的,重命名;-))任何不在 /usr/lib/python2.7 中的 hashlib 文件

答案2

通过删除文件,我的 python 被保存了 ./usr/lib/python2.7/lib-dynload/_hashlib.x86_64-linux-gnu.so

我不知道它是从哪里来的,但删除它使得导入 hashlib 和使用 pip 再次工作

相关内容