hombrew python 2.7インストールでpipが動作しない


15

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

いずれも実行可能ファイルではありません。

pip実行可能ファイルが見つからないので、$ PATHをどこに指定するか本当にわかりません。開いたら

/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

いずれも実行可能ファイルではありません。

私よりも経験のある人の助けをいただければ幸いです。

編集:私はマルコが提案した手順を試してみました:

手順の結果は次のとおりです。

  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. どの-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ファイルを含むいくつかを返します

回答:


19

一般的には、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

/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

**標準Appleなし/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/python。特にeasy_installリンクが存在しない場合、失敗します。

今、あなたは実行することができます

easy_install pip

あなたが進歩していることを願っています


マルコ、答えてくれてありがとう!ステップの結果については、元の質問を参照してください-追加しました
-YoungPadawan

@YoungPadawanは、Apple Standardを持っていないようです/usr/bin/python。多くのPythonスクリプトはで始まるため、これは適切ではありません#!/usr/bin/python。pythonがない場合、あなたのようなエラーメッセージが表示されます。を使用brew link --dry-run pythonして、リンクの変更内容を確認しますbrew link --overwrite python。ピップを実行します;
マルコM.フォンハーゲン

brew link --overwrite --dry-run pythonどのファイルが上書きされるかを確認するために使用します。
マルコM.フォンハーゲン

1
私は正しい道をたどったのであなたの答えにチェックを入れましたが、結局それは許可の問題でした。インストール後、私はWarning: The post-install step did not complete successfully You can try again using brew postinstall python. I tried the brew postinstall python`コマンドを取得し、それによって私がアクセスできなかったいくつかのファイルに移動しました。これでpipを使用できます!再びありがとう
-YoungPadawan

1
私の場合、問題の原因はでしThe post-install step did not complete successfullyerror: could not delete '/usr/local/lib/python2.7/site-packages/pip/__init__.py': Permission denied。そのファイルを手動で削除してからbrew postinstall python再度実行すると、修正されました。
デビッドパースハウス

5

brewがPythonインストールを管理していて、pipがシンボリックリンクされていない場合(つまり、「which pip」と入力しても結果が得られない場合)、ホームディレクトリから次のコマンドを試してください。

brew unlink python && brew link python

古い方法がもう機能するかどうかはわかりません(私のマシンでは機能しませんでした)。

ここで、2.7インストールを実際に指していることを確認しますpip --version(ディレクトリの出力にpythonメジャーバージョンがリストされます)。


4

実際には元の質問への答えではありませんが、Homebrew-installed python/pipが動作しなくなったために誰かがここで終わる場合(つまりpython、システムのPythonを指してpipいて見つからない場合)、理由は最近の(2017年夏)変更方法Homebrewはpythonをインストールしてリンクします。

解決策は、~/.bash_profileおよび/またはに以下を追加することです~/.zshrc

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

これpythonにより、Pythonのbrewバージョンがポイントされ、またが提供されますpip。詳細については、brew info pythonおよびhttps://github.com/Homebrew/homebrew-core/issues/15746の下の警告セクションを参照してください。


2

デフォルトでは、Homebrewは経由でpipを提供しますbrew install python。ただし、Macには2つの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すぐに動作するはずです。


あなたの答えケノーブをありがとう!問題の一部は、easy_installが動作しないことです。bashでは次のようになります。-bash:/ usr / bin / easy_install:/ usr / bin / python:不正なインタープリター:そのようなファイルまたはディレクトリがありません
YoungPadawan

これは、/usr/bin/pythonインストールしていないことを意味します(通常、OS Xで提供されるはずです)。だから、提案されているように試してみてください:brew install python && brew link python、そしてに追加/usr/local/binしてくださいPATH
ケノーブ

私はそれbrew install python && brew link pythonがPythonを入れているとは思わない/usr/bin。私はそれを見ていますがusr/local/bin、そこにピップするためのシンボリックリンクは見ていません。私もpythonのリンクとリンクを解除しましたが、何も変わりません。醸造物のインストールとリンクは、物を置くべき場所に置いていないようです
-YoungPadawan

@YoungPadawanはbrewで何もしません/usr/bin、しかし/usr/local/bin。Try:brew unlink pythonおよびdry-run:brew link -n pythonリンクする必要があるすべてのファイルをリストし、pip存在するかどうかを確認します。はいの場合、なしで再度実行し-nます。
ケノーブ

ケノーブのおかげで、解決策を見つけました。最終的には、許可が原因でインストールが失敗しました。brewと競合するいくつかのファイルのアクセス許可を変更し、インストールを再実行したところ、すべて正常に動作するようになりました。上記の質問へのコメントに詳細があります。答えてくれてありがとう
YoungPadawan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.