Ubuntuでpip3コマンドが使えなくなった時の対処法
スポンサーリンク
pip3を10.xへアップグレードした後に、pip3コマンドが使えなくなってしまったため、その原因と対処法を調べてみました(Ubuntu18.04を使用しています)。
原因
pip3 install --upgrade pip
でpip3をアップグレードすると下記のようにpip-10.0.1にアップグレードされます。
しかしその後pip3(pip3 installなど)のコマンドを実行しようとするとcannot import name 'main'というエラーが発生します。
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
下記リンクによると、上記アップデートでsystemのpipをアップデートして内部メソッドが書き換わったことにより、Ubuntu側で提供されているpip3コマンド(/usr/bin/)使えなくなってしまったことによる、と書かれています。
You must have inadvertently upgraded your system pip (probably through something like sudo pip install pip --upgrade)
pip 10.x adjusts where its internals are situated. The pip3 command you're seeing is one provided by your package maintainer (presumably debian based here?) and is not a file managed by pip.
引用:Python pip3 - cannot import name 'main' error after upgrading pip - Stack Overflow
対処法
上記説明は少し難しいのですが、これを解決する方法は調べた範囲では二通りあるようです。
一つはpip3コマンドの代わりに
python3 -m pip
を用いる方法。こちらはそのままの最新のpipを使用できます。
もしくは、もともとのpip3コマンドを使いたいという場合、pipを下記コマンドで一度アンインストールして
sudo python3 -m pip uninstall pip
その後、aptコマンドで再インストールする方法があります。
sudo apt install python3-pip
この場合、pip3コマンドは使えますが、バージョンはUbuntuのレポジトリにある最新版がインストールされます(下記の場合、pip 9.0.1)。
最後に
Ubuntuでpip3コマンドが使えなくなった場合の原因と対処法について説明しました。お役に立ちましたら幸いです。