pip 在 hombrew python 2.7 安装上无法运行

pip 在 hombrew python 2.7 安装上无法运行

我使用 homebrew 安装了 python,但无法从 bash 调用 pip。我尝试修改 .bash_profile 以包含 /usr/local/bin/python 和 /usr local/share/python,但无济于事。

当我使用 bash 命令时:

find / -name 'pip'

我得到的唯一结果是:

/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip
/Users/Ivan/Library/Caches/pip
/Users/Ivan/Library/Logs/pip
/usr/local/Cellar/python/2.7.9/libexec/pip
/usr/local/Cellar/python/2.7.9/libexec/pip/pip
/usr/local/lib/python2.7/site-packages/pip

其中没有一个是可执行文件。

我不知道该将 $PATH 指向哪里,因为我找不到 pip 可执行文件。当我打开

/usr/local/lib/python2.7/site-packages/pip

或者

/usr/local/Cellar/python/2.7.9/libexec/pip/pip

我找到以下文件:

__init__.py         commands            operations
__init__.pyc        compat              pep425tags.py
__main__.py         download.py         pep425tags.pyc
__main__.pyc        download.pyc        req
_vendor             exceptions.py       status_codes.py
basecommand.py      exceptions.pyc      status_codes.pyc
basecommand.pyc     index.py            utils
baseparser.py       index.pyc           vcs
baseparser.pyc      locations.py        wheel.py
cmdoptions.py       locations.pyc       wheel.pyc
cmdoptions.pyc      models

其中没有一个是可执行文件。

我将非常感谢任何比我更有经验的人的帮助。

编辑:我尝试了 Marco 建议的步骤:

以下是这些步骤的结果:

  1. echo $PATH 显示几个目录: /usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/opt/X11/bin:/usr/local/mysql/bin

  2. which -a python 返回:/usr/local/bin/python /usr/local/bin/python

对于 -a pip 什么也不会返回

  1. python 返回:/usr/local/bin/python

pip 没有返回任何内容

  1. ls -l $(which python) 返回单个目录:lrwxr-xr-x 1 Ivan admin 33 17 May 08:59 /usr/local/bin/python -> ../Cellar/python/2.7.9/bin/python

ls -l $(which pip) 返回几个,包括我在原始帖子中展示的 python 文件

答案1

一般homebrew会安装一个formula进入/usr/local/Cellar/formula然后在 处放置一个链接/usr/local/bin/formula

要使用已安装的公式,请确保/usr/local/bin在您的 中。输入以下命令$PATH显示您的$PATH

echo $PATH

如果/usr/local/bin您的 中没有$PATH,请将此行放在文件末尾~/.profile

export PATH="/usr/local/bin:$PATH"

现在,pythons输入以下命令检查你的 OSX 上找到了什么:

which -a python

应该在 处找到一条 python /usr/bin/(Apple python),在 处找到一条 python ,在/usr/local/bin/处找到一条 Homebrew python 。

which python

将显示哪个 python 在您的程序中首先被找到$PATH 并且将在您调用时执行python

如果你想知道可执行文件在哪里,请输入以下命令显示

ls -l $(which python)

它可能看起来像这样:lrwxr-xr-x 1 root wheel 68 7 Mai 13:22 python -> /usr/local/bin/python

这也同样有效pip

如果您展示这些步骤的结果,我们可能会更轻松地帮助您。

- 更新 -

您已/usr/local/bin/python链接到/usr/local/Cellar/python/2.7.9/bin/python.->brew install python已起作用。

显示,如果pip通过键入安装

brew list python | grep pip

你应该看到

/usr/local/Cellar/python/2.7.9/bin/pip

如果没有,请检查是否存在未完成的链接brew install。告诉您类似这样的内容:

"Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local"

强制链接并覆盖所有冲突的文件:

brew link --overwrite python

列出所有将被删除的文件:

brew link --overwrite --dry-run python

** 没有标准的苹果/usr/bin/python**

链接自/usr/local/Cellar/python/2.7.9/bin/python/usr/bin/python

ln -s /usr/local/Cellar/python/2.7.9/bin/python /usr/bin/python

对于所有以 开头的 Python 脚本来说,这都是必需的#!/usr/bin/pythoneasy_install如果没有链接,则尤其会失败。

现在,你可以运行

easy_install pip

希望你正在取得进步

答案2

如果 brew 正在管理你的 python 安装并且 pip 不再是符号链接(即你输入“which pip”但没有得到任何结果)请从你的主目录尝试执行以下操作:

brew unlink python && brew link python

不确定旧方法是否仍然有效(在我的计算机上不起作用)。

现在确认它确实指向你的 2.7 安装pip --version(它将在目录输出中列出 python 主版本)。

答案3

这并不是对原始问题的真正回答,但如果有人最终来到这里,因为他们安装的 Homebrewpython/pip不再工作(即python指向系统 python 但pip找不到),那么原因可能是最近(2017 年夏季)Homebrew 安装和链接 python 的方式发生了变化。

解决方案是将以下内容添加到~/.bash_profileand/or 中~/.zshrc

export PATH="$(brew --prefix)/opt/python/libexec/bin:$PATH"

这将python指向 brew 版本的 python 并为您提供。请参阅和pip下的注意事项部分brew info pythonhttps://github.com/Homebrew/homebrew-core/issues/15746了解更多信息

答案4

默认情况下,Homebrew 通过以下方式提供 pip:。brew install python但是,这样你就会在 Mac 上安装两个 Python,你也可以通过以下方式安装:

sudo easy_install pip

要验证你的 Python 包中安装了哪些文件,请尝试:

$ brew list python
/usr/local/Cellar/python/2.7.9/bin/pip
/usr/local/Cellar/python/2.7.9/bin/pip2
/usr/local/Cellar/python/2.7.9/bin/pip2.7
...

应该包括pip

安装后,您应该通过以下方式对公式的安装文件进行符号链接:

brew link python

它应该创建正确的符号链接(例如/usr/local/bin/pip指向你的Cellar/python/2.?.?/bin/pip

如果您有权限问题,您可以通过以下方式修复:

sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew

并确保您的用户属于管理员组(id -Gn $USER)。

修复权限后,sudo使用brew命令时请勿使用。

然后再次重新链接:

brew unlink python && brew link python

测试空运行、取消链接并运行:brew link -n python查看brew将链接的文件的链接。

链接成功后,请确保你的PATH系统变量中有/usr/local,若没有,则添加:

export PATH=/usr/local/sbin:/usr/local/bin:$PATH

到您的~/.bashrc文件中。

如果成功的话你pip现在就可以工作了。

相关内容