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

沒有回任何點

  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會將 a 安裝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

應該在/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

這對於所有以#!/usr/bin/python.easy_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指向 python 的 brew 版本,並且還為您提供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現在應該可以工作了。

相關內容