aptでpipをインストールした後にpipのバージョンアップを試みると、pipが動かなくなってしまったのでその対策をまとめます。
現象
WSL (Windows Subsysmte for Linux)、つまりUbuntu 16.04でpipのバージョン9以上を使いたかったのです。でもaptでインストールされたのはpip 8.1.1だったのでpipをアップグレードをしたら、pipが壊れて動かなくなりました。
やったこと
# pipのインストール $ sudo apt install python-pip # バージョン確認 $ pip --version pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7) # pip 9以上を使いたかったのでのバージョンアップ $ pip install --upgrade pip
起きたエラー
pipコマンドが壊れて、pipで何かやろうとするとこのエラーが出るようになってしまいました。
$ pip Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main
なぜこのエラーが起きるかの原因については、こちらのサイトがわかりやすかったです。どうにもpip 10からディレクトリ構造など諸々変わってしまったのが原因みたい・・・。
pip install --upgrade pip (10.0.0) 後の奇妙な挙動について - 雑記
TL;DR pipを10.0.0に更新した後に ~$ pip Traceback (most recent call last): File "/usr/bin/pip", line 9, in from pip import main I...
対策
pipのアンインストール
とりあえずpipを一旦アンインストールします。
# pipのアンインストール $ sudo apt --purge remove python-pip
このままもう1回aptでpipをインストールしても動かなくなってしまっているので、pipを完全にアンインストールしてやります。
$ python -m pip uninstall pip
これでpipインストール前の綺麗な状態に戻りました。
aptを使わずにpipをインストール
aptのpipパッケージが新しくなればこのアップデートで動かなくなる問題も解決するかもしれませんが、今回はaptを使ったpipのインストールは諦めて、使わない方法に切り替えます。
# aptを使わずpipのインストール $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py $ sudo python get-pip.py
これでpipがインストールされました。バージョンを確認すると、目的のpip 9以上がインストールされているのが確認できます。
$ pip --version pip 18.1 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
コメント