我不知道为什么会发生这种情况,但是从源代码安装 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 再次工作