我需要为我的一个项目安装hashlib
,并使用easy_install hashlib
(如this Stack Exchange post所述)这样做。但是,在我安装此软件包后,我根本无法使用pip。每当我用pip
(如pip install
)键入命令时,我都会收到以下错误消息:
Traceback (most recent call last):
File "/usr/local/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 37, in <module>
import email.parser
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/email/parser.py", line 12, in <module>
from email.feedparser import FeedParser
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/email/feedparser.py", line 27, in <module>
from email import message
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/email/message.py", line 16, in <module>
import email.charset
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/email/charset.py", line 13, in <module>
import email.base64mime
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/email/base64mime.py", line 40, in <module>
from email.utils import fix_eols
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/email/utils.py", line 27, in <module>
import random
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/random.py", line 49, in <module>
import hashlib as _hashlib
File "build/bdist.macosx-10.13-intel/egg/hashlib.py", line 115, in <module>
"""
TypeError: 'frozenset' object is not callable
现在,当我使用easy_install
-相同的错误时,也会发生这种情况。我也无法卸载pip并重新安装 - 使用pip
的任何命令都会导致上述错误。甚至执行
pip --version
产生同样的错误。我知道这与hashlib
包有关,但我不确定如何删除它并重新安装而不会弄乱我的整个Python配置。我的假设是我安装的hashlib
版本对于我的Python 2.7而言太旧或太新,并且不能很好地使用它。
有没有人知道这个堆栈跟踪中幕后的确切情况,以及我如何修复pip
?
从hashlib.py
文件夹中删除lib/python2.7
是最好的事情吗?
所以,这并没有解决hashlib
的问题,但它确实让你再次工作pip
:字面上下载并重新安装Python 2.7再次from the source。如果有人想出一个更好,更优雅的解决方案来修复pip
,我就是全力以赴。
但是,至少我可以再次使用pip
......