在OS X Mavericks上安装pip失败,错误:/usr/local/bin/pip: 没有那个文件或目录

4 投票
3 回答
4323 浏览
提问于 2025-04-18 08:28

我正在使用OSX自带的Python 2.7.5版本。

我尝试用sudo easy_install pippython get-pip.py 来安装pip。

当我用easy_install安装pip时,出现了以下错误:

Processing pip
Running setup.py -q bdist_egg --dist-dir /Users/XXXX/pip/egg-dist-tmp-VtRwku
warning: no files found matching 'pip/cacert.pem'
warning: no files found matching '*.html' under directory 'docs'
warning: no previously-included files matching '*.rst' found under directory 'docs/_build'
no previously-included directories found matching 'docs/_build/_sources'
no previously-included directories found matching 'tasks'
pip 1.6.dev1 is already the active version in easy-install.pth
Installing pip script to /usr/local/bin
error: /usr/local/bin/pip: No such file or directory

当我用get-pip.py安装pip时,

Requirement already up-to-date: pip in /Library/Python/2.7/site-packages/pip-1.6.dev1-py2.7.egg
  • 我输入pip help时什么都没有显示。

3 个回答

-1

如果你遇到错误信息:/usr/local/bin/pip: No such file or directory,而且pip已经安装好了,可以按照以下步骤来解决这个问题:

  1. 运行命令which pip。这个命令会告诉你pip的安装位置,比如:/usr/local/bin
  2. 然后把pip文件复制到你想要的位置

在这里,

cp /usr/local/bin /usr/local/bin/pip

这样就解决了我的问题。

0

错误信息,特别是评论中提到的 Cellar,说明你是通过 Homebrew 安装了另一个 Python 版本。

可能只需把 /usr/local/bin/pip 改个名字,就能解决眼前的问题。不过我建议你不要完全删除它,至少在你搞清楚具体问题之前。

更详细地说,要使用系统自带的 Python,你需要撤销 Homebrew 安装第二个 Python 时所做的更改。首先,你需要取消在 .bashrc 和其他地方设置的所有变量,这些都是 Homebrew 安装时添加的。

如果在 /usr/local/bin 里有指向已经不存在的命令的符号链接,你需要把它们删除(需要管理员权限)。这说明之前的卸载不干净;下次记得按照 Homebrew 的说明来卸载它和你安装的包。

更详细地说,Homebrew 可能做了类似这样的操作:

ln -s /usr/local/Cellar/something/something/python-2.7.3 /usr/local/bin/python

如果 /usr/local/Cellar/something/something 现在不存在了,试图通过符号链接在那写东西显然会失败。这正是 pip 安装程序在安装结束时试图做的事情。

如果你已经永久删除了 Homebrew,可以编辑 .bashrc,把 Homebrew 所需的更改恢复。某些设置可能在你当前运行的终端中仍然有效,直到下次重启;如果你想解决这些问题,可以继续往下看。

要临时覆盖这些设置,你可以 unset 你的 PYTHONPATH,这样就能恢复到系统默认的行为。如果 /usr/local/bin 中的命令覆盖了系统默认命令,你可以通过简单地把 /usr/bin 放在前面来临时设置你的 PATH,这样就会优先使用系统的命令(这只是个临时的解决办法);

PATH=/usr/bin:$PATH

这些命令适用于 Bash,如果你用的是其他终端,请相应调整。

1

@ mirra.p

问题可能是你电脑上安装了两个不同位置的 Python 2 版本,而其中一个版本的 pip(Python 的包管理工具)不小心被删除了。所以当你尝试为一个版本安装 pip 时,系统会告诉你在另一个位置已经有一个 pip 安装了,而且 /usr/local/bin 文件夹里也缺少用来安装 pip 的文件。

已经安装的 pip 文件位置是:

Library/Python/2.7/site-packages/pip-1.6.dev1-py2.7.egg

我刚刚解决了这个问题,所以我会尽量用简单的方式来解释,让初学者也能理解。

你可以把已经安装的 pip 文件复制到缺少它的地方,而不是通过命令重新安装,因为命令会检测到已经安装的 pip。

解决方法非常简单:

在 Ubuntu 的终端(命令提示符)中运行以下命令,来获取已经安装的 pip 文件的位置:

which pip

cp <which pip 提供的位置> <要复制 pip 文件的位置>

cp /Library/Python/2.7/site-packages/pip /usr/local/bin

我使用的是 mirra.p 问题中的位置。

希望这能帮到你。

撰写回答