File “/usr/local/bin/pip3”, line 5, in from pip._internal.cli.main import main ModuleNotFoundError: No module named ‘pip’ が出た時の対応例

注:ブログは時系列で記載しています。
解決方法は下記最終的な対応を参照して下さい。

発端

新しいMacで、今まで作業していた共有フォルダに置いてあるflaskを実行してみたら下記エラーが出た。

% flask run
Traceback (most recent call last):
  File "/usr/local/bin/flask", line 5, in <module>
    from flask.cli import main
ModuleNotFoundError: No module named 'flask'

あれ?この環境にflaskはインポートしていたはず。
pip3 listでインストール済みモジュールを確認しようとすると、似た様なエラーが出た。

% pip3 list
Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 5, in <module>
    from pip._internal.cli.main import main
ModuleNotFoundError: No module named 'pip'

念の為pip listを実行してみた同じ。

pipと言うモジュールはない、とのエラーなのに、which pip3 / which pipを実行すると場所が出てきて、その場所には確かにpip, pip3がある。

% which pip3
/usr/local/bin/pip3

困って最初”ModuleNotFoundError: No module named ‘pip'”で色々探したが関係ありそうなものが見つからない。

最初の対応:pip

“from pip._internal.cli.main import main ModuleNotFoundError: No module named ‘pip'”まで含めて調べる等して調べていたらこちらのサイトを見つけた。
森羅万象テーブル
どうもインストールしているpip/pip3のversionが古いそうだ。

こちらの説明の通りに”curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | sudo python”の実行でpipはインストールできた。

% curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | sudo python
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1863k  100 1863k    0     0  3444k      0 --:--:-- --:--:-- --:--:-- 3438k
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
WARNING: The directory '/Users/username/Library/Caches/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting pip<21.0
  Downloading pip-20.3.4-py2.py3-none-any.whl (1.5 MB)
     |████████████████████████████████| 1.5 MB 2.3 MB/s 
Installing collected packages: pip
Successfully installed pip-20.3.4

pip3は相変わらず

これでpipは使える様になったが、pip3は相変わらず。

pipのコマンドをpip3に変えたり、pip3.9などバージョンを変えてみたが上手くいかない。

最終的な対応

pip3を解決しないとflaskが実行できないので探していると、pipが動かなくなったのサイトを見つけた。

こちらの説明の通り、Installation — pip v21.3.1 documentationからget-pip.pyを任意のフォルダにダウンロード、そのフォルダから

sudo python3 get-pip.py 

を実行したらpip3もインストールされ、pip3が動く様になった。

またpipにこのエラーが出たら、同様のダウンロードの後

sudo python get-pip.py 

となる。

今回のお陰で困った時の公式のページを知る事も出来た。

今後同様なことが起きた時には、この最終的な対応でpip/pip3両方対応する。

皆様の情報共有に感謝。

Swiftの本
「はじめに」によると
・個人/会社問わず、一人でSwiftUIに挑戦している方
・SwiftUIでアプリ開発をしたい方
・SwiftUIのチュートリアルを終わらせてもっと深く学びたい方
向けとの事。
中古だと新品より高く6,000円程する、レビューの評価も高い定価4,000円程の本だが、Kindleだと1,800円程なのでお得。