【发布时间】:2013-09-03 18:10:36
【问题描述】:
我正在尝试安装 pip。我遇到了问题,不知道如何解决。
我已经激活了我的 virtualenv。
当我运行 $ pip 时,我得到命令列表,但是当我运行 $ pip list 时,我得到以下响应。
distribute (0.6.28)
pip (1.4.1)
Exception:
Traceback (most recent call last):
File "/Users/Marcus/Documents/Django/venv/lib/python2.7/site-packages/pip/basecommand.py", line 134, in main
status = self.run(options, args)
File "/Users/Marcus/Documents/Django/venv/lib/python2.7/site- packages/pip/commands/list.py", line 80, in run
self.run_listing(options)
File "/Users/Marcus/Documents/Django/venv/lib/python2.7/site- packages/pip/commands/list.py", line 127, in run_listing
self.output_package_listing(installed_packages)
File "/Users/Marcus/Documents/Django/venv/lib/python2.7/site-packages/pip/commands/list.py", line 136, in output_package_listing
if dist_is_editable(dist):
File "/Users/Marcus/Documents/Django/venv/lib/python2.7/site-packages/pip/util.py", line 347, in dist_is_editable
req = FrozenRequirement.from_dist(dist, [])
File "/Users/Marcus/Documents/Django/venv/lib/python2.7/site-packages/pip/__init__.py", line 194, in from_dist
assert len(specs) == 1 and specs[0][0] == '=='
AssertionError
Storing complete log in /Users/Marcus/.pip/pip.log
谢谢
【问题讨论】:
-
最终的问题是对于 pip 1.4 来说,这个版本太旧了。事实上,每个版本的分发都太旧了;该软件包被合并回
setuptools,而distribute 0.7实际上只是一个垫片,它引入了setuptools的要求……如果你能解释你是如何安装它们的,那么解释如何修复它会更容易。或者,更简单地说,只需重新开始并从头开始安装setuptools和pip和/或virtualenv,并且根本不要触摸distribute,然后就可以搞定了。 -
我希望我可以追溯我安装软件包所采取的所有步骤。我该如何重新开始?有没有办法删除我已经安装的内容,或者我需要重新安装以前的副本
-
嗯……您使用的是 Apple 的 Python,还是安装了第三方 Python(或包含其自己的 Python 的 Django 二进制发行版)并使用它而不是 Apple 的?
-
此外,值得检查此错误是发生在 virtualenv 之外还是仅在内部。如果它只发生在内部,您可能只需要创建一个新的 venv 来重新开始……但您可能还是想在全局范围内修复问题。
-
无论如何,你有没有尝试解决AirThomas的建议?如果您使用 pip 来升级分发和 pip,那应该会自动引入最新的 setuptools 并用 setuptools 存根替换分发,一切都应该正常工作。 (也许在测试时交叉手指。)
标签: python macos virtualenv pip