【发布时间】:2013-08-25 21:14:30
【问题描述】:
在 OSX 10.7.5 上,我正在尝试使用 pip3 命令将软件包安装到 python3。当我尝试时,我收到以下错误消息:
zak$ pip3
Traceback (most recent call last):
File "/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/setuptools-1.0-py3.3.egg/pkg_resources.py", line 2793, in <module>
File "/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/setuptools-1.0-py3.3.egg/pkg_resources.py", line 673, in require
File "/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/setuptools-1.0-py3.3.egg/pkg_resources.py", line 580, in resolve
pkg_resources.VersionConflict: (pip 1.4.1 (/usr/local/lib/python3.3/site-packages), Requirement.parse('pip==1.3.1'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/pip3", line 5, in <module>
from pkg_resources import load_entry_point
File "<frozen importlib._bootstrap>", line 1567, in _find_and_load
File "<frozen importlib._bootstrap>", line 1534, in _find_and_load_unlocked
File "/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/setuptools-1.0-py3.3.egg/pkg_resources.py", line 2797, in <module>
File "/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/setuptools-1.0-py3.3.egg/pkg_resources.py", line 576, in resolve
pkg_resources.DistributionNotFound: pip==1.3.1
看起来setuptools 要求使用旧版本的 pip(我安装了 1.4.1),但为什么呢?我该如何解决这个问题?
【问题讨论】:
-
您是否安装了任何东西,或者这是使用 Homebrew 的
pip开箱即用?我不会对后者感到那感到惊讶,因为 setuptools 1.0 是相当新的,并且有一些向后不兼容的地方,而且 Homebrew 的配方可能还没有完全更新……但最好排除早期安装的不兼容遗留物(例如,您已经分发,然后安装了最近的 setuptools 而没有先卸载分发)。 -
另外,你有
PYTHONPATH吗?如果您在 Python 中print(sys.path),这些目录是否与您机器上的任何其他 Python 安装共享? -
经过一番鬼混之后,我能够通过安装 Python.org 3.3(将
/Library/Frameworks/Python.framework/Versions/3.3/bin放在 PATH 上而不是链接到/usr/local/bin)来触发它,安装 pip 1.3.1及其最小依赖项,然后安装带有 pip 1.4.1 的 Homebrew 3.3。我最终得到/usr/local/bin/pip3是 1.3.1 python.org 脚本,但指向/usr/local/bin/python3.3,这是 Homebrew 版本,它在/usr/local/lib/python3.3/site-packages中找到 pip 1.4.1。 -
显而易见的解决方法是:卸载另一个 Python 3.3,取消 brew 的链接,
rm -rf /usr/local/lib/python3.3,重新链接 brew。除非您需要两个 Python 3.3 版本,或者您绝对确定这不适用于您,否则请尝试一下。 -
brew 实际安装的任何东西都将是
/usr/local/Cellar中某些东西的符号链接(具体来说,在/usr/local/Cellar/python3/3.3.2/中,但您只需检查地窖就可以了)。或者,更简单地说,您可以brew unlink python3它会消失(然后brew link python3会找回它)。问题是,如果你做了类似pip3 install ipython之类的操作,你最终可能会得到一个/usr/local/bin/ipython3,它是/usr/local/lib/python3.3/site-packages中某个东西的符号链接,无论它是由Brew python 还是其他安装的。
标签: python macos python-3.x pip setuptools