pip命令返回TypeError

时间:2017-12-20 04:24:34

标签: python pip

我需要为我的某个项目安装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吗?

1 个答案:

答案 0 :(得分:0)

所以,这并没有解决hashlib的问题,但它确实让你再次工作pip:从字面上下载并重新安装Python 2.7 from the source。如果有人想出一个更好,更优雅的解决方案来修复pip,我就是全力以赴。

但是,至少我可以再次使用pip ...