web-dev-qa-db-ja.com

ピップインストール/usr/local/opt/python/bin/python2.7:インタプリタが悪いです:そのようなファイルやディレクトリはありません

何が問題なのかわかりませんが、スタックオーバーフローによる解決策がどこにも見られないという問題があります。これを手伝ってください。

  Monas-MacBook-Pro:CS764 mona$ Sudo python get-pip.py
    The directory '/Users/mona/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
    The directory '/Users/mona/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
    /tmp/tmpbSjX8k/pip.Zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
    Collecting pip
      Downloading pip-7.1.0-py2.py3-none-any.whl (1.1MB)
        100% |████████████████████████████████| 1.1MB 181kB/s 
    Installing collected packages: pip
      Found existing installation: pip 1.4.1
        Uninstalling pip-1.4.1:
          Successfully uninstalled pip-1.4.1
    Successfully installed pip-7.1.0
    Monas-MacBook-Pro:CS764 mona$ pip --version
    -bash: /usr/local/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory
73
Mona Jalal

私はOS X 10.10に2.7をインストールするために自作を使用していましたが、新しいインストールにはsymリンクがありませんでした。私は走った

brew link --overwrite python

Homebrewでpythonをシンボリックするにはどうすればいいですか? で述べたように、それは問題を解決しました。

145
LancDec

私はあなたには2つのpythonインストール、または2つのpipインストールがあり、そのうちの1つは部分的に削除されていると思います。

なぜSudoを使うのですか?理想的にはrootを使う代わりにあなたのユーザーアカウントから全てをインストールして実行できるべきです。 rootアカウントとローカルアカウントを混在させると、アクセス権の問題に遭遇する可能性が高くなります(たとえば、「親ディレクトリは現在のユーザーが所有していない」という警告を参照)。

これを実行するとどうなりますか?

$ head -n1 /usr/local/bin/pip

これはどのPythonバイナリpipが使用しようとしているかを示します。それが/usr/local/opt/python/bin/python2.7を指しているなら、これを実行してみてください。

$ ls -al /usr/local/opt/python/bin/python2.7

これが「そのようなファイルまたはディレクトリがありません」と言う場合、pipは削除されたpythonバイナリを使用しようとしています。

次に、これを試してください:

$ which python
$ which python2.7

実際に動作しているPythonバイナリのパスを確認する。

Pipがどこかに正常にインストールされたように見えるので、/usr/local/bin/pipPATHの上位にある古いpipのインストールの一部である可能性があります。これをテストするには、機能していないpipバイナリをこのように邪魔にならないようにします(Sudoが必要になる場合があります)。

$ mv /usr/local/bin/pip /usr/local/bin/pip.old

その後、pip --versionコマンドをもう一度実行してください。うまくいけば、それは正しいバージョンを拾い上げて、うまく実行されます。

42

OSXとその変種で唯一のソリューション。

ln -s /usr/local/bin/python /usr/local/opt/python/bin/python2.7
39
TheExorcist

インストールにSudoを使用して同じエラーをしました。 (おっとっと)

brew install python
brew linkapps python
brew link --overwrite python 

これですべてが正常に戻りました。

25
DaveSaunders

固定ピップ

このエラーの場合:

~/Library/Python/2.7/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory`

この問題の原因は、pipでハードコードされた不正なpythonパスです(つまり、$ PATHを変更しても修正されません)。そのパスは最新バージョンのpipではもはやハードコードされていないので、動作するべき解決策は:

pip install --upgrade pip

しかし、もちろん、このコマンドはpipを使用しているので、同じエラーで失敗します。

この混乱から自分自身をブートストラップする方法:

  1. which pipを実行する
  2. そのファイルをテキストエディタで開く
  3. 最初の行を#!/usr/local/opt/python/bin/python2.7から例: #!/usr/local/opt/python2/bin/python2.7(パスの中のpython2に注意してください)、またはあなたのマシン上で動いているpythonインタプリタへのパス。
  4. さて、pip install --upgrade pip(これはあなたのハックを上書きして、インタプリタの問題が修正されるべきである最新バージョンでpipが動くようにします)

Virtualenvを修正する

私にとって、私は最初にvirtualenvからの同じ問題を抱えることによってこの問題を見つけました:

~/Library/Python/2.7/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory`

ここでの解決策は実行することです

pip uninstall virtualenv
pip install virtualenv

そのコマンドを実行してもpipから同じエラーが発生する場合は、上記を参照してください。

24
kotoole

私は同様の問題を抱えていました。基本的にpipは間違ったパス(古いインストールパス)またはpythonを探していました。次の解決策は私のために働きました:

  • 私はPythonのパスがどこにあるかを調べました(which pythonを試してみてください)
  • ピップファイルの最初の行(/usr/local/bin/pip2.7/usr/local/bin/pip)をチェックしました。その行はpythonのパスへの正しいパスを記述するべきです。私の場合は違います。私はそれを修正しましたそして今それはうまく働きます。
12
sahar

それが誰にでも役立つ場合、pipがそれをアップグレードした後に今日働かなくなったとき、この他の質問で述べられた解決策は私のために働きました: アップグレード後に壊れたPip

以前にキャッシュされた場所が変更されたときに問題になると思われるので、このコマンドでキャッシュを更新することができます。

hash -r
9
Jordan

操作を簡単にするために、下記のコマンドを使用してバージョン2を再インストールすることができます。

brew install python@2

それから私のMacでは、それは以下のようになります。

▶ python -V
Python 2.7.10

▶ python2 -V
Python 2.7.14

▶ python3 -V
Python 3.6.5

▶ pip2 -V
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)

▶ pip3 -V
pip 9.0.3 from /usr/local/lib/python3.6/site-packages (python 3.6)

▶ pip --version
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)
8
feuyeux

私はpython 2と3の両方をMac OSXにインストールしていたので、私はあらゆる種類のエラーを抱えていました。

私はこれを使って私のpython2.7ファイルの場所を見つけました(/usr/local/bin/python2.7)。

which python2.7

それから私は私の本当のpython2.7インストール場所をスクリプトが期待するものとシンボリックリンクさせました:

ln -s /usr/local/bin/python2.7 /usr/local/opt/python/bin/python2.7
8
Simon Briggs

私は同じ問題を抱えていました。私はPython 2.7と3.6の両方をインストールしています。 Python 2.7ではvirtualenvが動作していましたが、Python 3をインストールした後、virtualenvはバージョン2.7を探し続け、それを見つけることができませんでした。 pip install virtualenvを実行すると、Python 3バージョンのvirtualenvがインストールされました。

それから、各コマンドに対して、私がPython2を使いたいのであれば、私はvirtualenv --python=python2.7 somecommandを使います。

4
yabrol

私は同じ問題を抱えていた、virtualenvは古いpythonのパスを指していました。パスを修正することで問題が解決しました。

$ virtualenv -p python2.7 env
-bash: /usr/local/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory

$ which python2.7
/opt/local/bin/python2.7

# needed to change to correct python path
$ head  /usr/local/bin/virtualenv
#!/usr/local/opt/python/bin/python2.7 <<<< REMOVED THIS LINE
#!/opt/local/bin/python2.7 <<<<< REPLACED WITH CORRECT PATH

# now it works:
$ virtualenv -p python2.7 env
Running virtualenv with interpreter /opt/local/bin/python2.7
New python executable in env/bin/python
Installing setuptools, pip...done.
4
d g

私は同じ問題を抱えています。 brew link --overwrite python2を実行した場合まだzsh: /usr/local/bin//fab: bad interpreter: /usr/local/opt/python/bin/python2.7: no such file or directoryがありました。

cd /usr/local/opt/
mv python2 python

それを解決しました!今度はpython2バージョンのファブリックを使用できます。

=== 2018/07/25更新

あなたのos pythonがpython3にリンクしているときにpython2 version fabを使う便利な方法があります。あなたのコマンドの.sh

# fab python2
cd /usr/local/opt
rm python
ln -s python2 python

# use the fab cli
...

# link to python3
cd /usr/local/opt
rm python
ln -s python3 python

お役に立てれば。

1
Peter. Chen

このファイルの最初の行を編集して私にはうまくいきました:

MBP-de-Jose:~ josejunior$ which python3

/usr/local/Cellar/python/3.7.3/bin/python3

MBP-de-Jose:~ josejunior$

#!/usr/local/opt/python/bin/python3.7

後に

#!/usr/local/Cellar/python/3.7.3/bin/python3
1
José Junior

私の場合は、MacPortsを通して他の2つのバージョンのpythonがすでにMacにインストールされているので、私は自分のMacから自作のpythonインストールを削除することにしました。これはエラーメッセージを引き起こしました。

Brewを通してpythonを再インストールすることで私の問題は解決しました。

1
Simon
Sudo /usr/bin/easy_install pip

このコマンドは私のためにうまくいきました

0
user9022502