pipのアップグレードによりPythonのインストールがめちゃくちゃになる

pipのアップグレードによりPythonのインストールがめちゃくちゃになる

新しく作成されたUbuntu 16.4仮想インスタンスに作成したPythonアプリケーションをインストールしようとしています。以前に自分のPCにインストールしたPythonパッケージをいくつかインストールする必要があります。

このメッセージを見るまで、すべてがうまくいっていました。

You are using pip version 8.1.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

まあ、私はこれが無害だと思った。

ただし、これを実行した後に次に pip を実行すると、次の結果が表示されます。

$ pip freeze
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

以前の時点に戻る必要があると思います。

$ sudo apt install python-pip

それから

$ sudo apt install python-pip
...
Setting up python-pip (8.1.1-2ubuntu0.4) ...

さて、pip 8.1.1を復元しました。思いやり

$ pip freeze
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

問題は、pipのアップグレードがめちゃくちゃだということです。どうすれば解決できますか?

答え1

 $python -m pip uninstall pip

これを使用すると、古いpipバージョンが提供されます。

答え2

最近、Ubunutu 16.04で同じ問題が発生しました。

これを行うときは、次の点に注意してください。

/usr/bin/pip freeze

トレースエラーが発生します。 which pipを実行すると、次の結果が表示されます。

/usr/local/bin/pip

私が使用しているシェルが/usr/bin/pip正しくありません。私は/usr/bin/pip新しい名前を以前の名前があった場所に変更し、シンボリックリンクしました。

ln -s /usr/local/bin/pip /usr/bin/pip

pip Freezeを実行してもエラーは表示されません。インストールされているパッケージを見ることができます。

答え3

どのように機能するのかわかりませんが、/usr/bin/pipファイルを編集し、問題の7行を変更しました。

from pip import main

到着

from pip._internal import main

これで問題が解決しました。

私はWindows 10でUbuntuを使用しています。

/usr/local/bin/pip他の答えで述べたように、これは私のコンピュータ間の違いです/usr/bin/pip

答え4

sudo python3 -m pip install --force-reinstall pip

これにより、間違った点を選択する問題が解決されます。

関連情報