OS X 上的 Python 2.7:TypeError: 'frozenset' object is not callable on each command
Posted
技术标签:
【中文标题】OS X 上的 Python 2.7:TypeError: \'frozenset\' object is not callable on each command【英文标题】:Python 2.7 on OS X: TypeError: 'frozenset' object is not callable on each commandOS X 上的 Python 2.7:TypeError: 'frozenset' object is not callable on each command 【发布时间】:2016-12-09 15:49:48 【问题描述】:我在使用 Python 的每个命令上都有这个错误:
➜ /tmp sudo easy_install pip 回溯(最近一次通话最后): 文件“/usr/bin/easy_install-2.7”,第 11 行,在 load_entry_point('setuptools==1.1.6', 'console_scripts', 'easy_install')() 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py”,第 357 行,在 load_entry_point return get_distribution(dist).load_entry_point(group, name) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py”,第 2394 行,在 load_entry_point 返回 ep.load() 加载中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py”,第 2108 行 entry = __import__(self.module_name, globals(),globals(), ['__name__']) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/__init__.py”,第 11 行,在 从 setuptools.extension 导入扩展 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/extension.py”,第 5 行,在 从 setuptools.dist 导入 _get_unpatched 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/dist.py”,第 15 行,在 从 setuptools.compat 导入 numeric_types,basestring 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/compat.py”,第 17 行,在 导入 httplib 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py”,第 80 行,在 导入 mimetools 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/mimetools.py”,第 6 行,在 导入临时文件 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tempfile.py”,第 35 行,在 从随机导入随机作为_Random 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/random.py”,第 49 行,在 将 hashlib 导入为 _hashlib 文件“build/bdist.macosx-10.11-intel/egg/hashlib.py”,第 115 行,在 """ TypeError:“frozenset”对象不可调用我能用这个做什么?
【问题讨论】:
你能做什么?避免称它为like_this(foo)
看起来你在某处有一个损坏的hashlib.pyc
文件。你能告诉我们python -v -m random
的输出吗? build/bdist.macosx-10.11-intel/egg/hashlib.py
看起来不像标准库路径,显示的源代码行也没有任何意义。
你可以参考这个***.com/questions/34083381/…
@ganeshgadila:这不在他们自己的代码中,至少尚未证明如此。
@MartijnPieters 我在python -v -m random
上有那个输出:pastebin.com/f3YUf6ck
【参考方案1】:
我也有这个问题,但我还需要安装 hashlib 包(在 Debian 上)。
我发现的最佳解决方案(最好是使用 easy_install 安装 hashlib)来自这里: https://askubuntu.com/questions/770262/python-hashlib-fails-to-install-pip
它是:
“快速而肮脏的解决方法是删除 /usr/lib/python2.7/lib-dynload/_hashlib.x86_64-linux-gnu.so 文件”
之后就可以用pip安装hashlib了!
【讨论】:
也适用于 Ubuntu!谢谢。【参考方案2】:删除这个包对我有帮助:
sudo rm -rf /Library/Python/2.7/site-packages/hashlib-20081119-py2.7-macosx-10.11-intel.egg【讨论】:
是的,这是一个坏包;标准库中有一个您不想屏蔽的hashlib
模块。
我注意到该软件包适用于 Python 2.4 及更早版本; hashlib
在 Python 2.5 中被添加到标准库中,这是一个向后移植。
不要认为这个包已经存在于 OSX mojave 中了以上是关于OS X 上的 Python 2.7:TypeError: 'frozenset' object is not callable on each command的主要内容,如果未能解决你的问题,请参考以下文章
Python AppEngine 'import MySQLdb' 不工作,OS X 10.9.2,python 2.7
在 Mac OS X 上安装了 Python 3,但它仍然是 Python 2.7
在 Mac OS X 10.6 上使用带有 Python 2.7 的 Google App Engine SDK