VSCodeでPython実行時に”ModuleNotFoundError: No module named ‘(モジュール名)'”が出たときの解決方法について

VSCodeのPythonでgoogletransを使おうとしたところ、以下のエラーが発生した。

ModuleNotFoundError: No module named 'googletrans'

モジュールをインストールしなおす(解決せず)

再度pip installを試したが当然解決せず。

pip install googletrans
pip3 install googletrans

VSCodeのパスを確認(解決せず)

次に、VSCodeが実行するPythonのパスを疑った。使っているパソコンはこれまでに「anaconda」「MicrosoftStoreからインストールできるPython」「VSCodeの拡張機能からインストールできるPython」「Python Software Foundationが配布するexeファイル」を入れてきた経緯があるため。

VSCodeの「ファイル」→「ユーザー設定」→「設定」で設定タブを開き、「設定の検索」に「python」と打ち込むとPython関連の設定が出てくる。「python.defaultInterpreterPath」という項目を確認する。

Python: Default Interpreter Path
Path to default Python to use when extension loads up for the first time, no longer used once an interpreter is selected for the workspace. See https://aka.ms/AAfekmf to understand when this is used.
C:\Users\user\AppData\Local\Programs\Python\Python39\python.exe

Windowsのシステム環境変数のPathと違ってたら怪しいと思ったが、一致していた。(実はここにヒントがあった)

pipをアップグレード(解決せず)

pip自体に問題があるのかなと思い、pipをアップグレードしてみた。

pip install --upgrade pip
pip3 install --upgrade pip

上記でエラーが出る場合は下記コマンドを実行する。

python -m pip install --upgrade pip

python3 -m pip install --upgrade pip

pipのアップグレード後、再度googletransのインストールを試したが解決せず。しかし調べていく中で、「pipでモジュールのインストール先を指定する方法がある」つまり「モジュールのインストール先が意図しているものとは違う可能性がある」ことが分かった。

Windowsのシステム環境変数のPathを変更(一応、解決)

Windowsボタンを右クリックして「システム」を押すと「システム > バージョン情報」が開く。「システムの詳細設定」を押すと「システムのプロパティ」が開く。

「環境変数」の「(ユーザー名)のユーザー環境変数(U)」の「Path」を確認したところ、

C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python39\
C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python39\Scripts\

となっていた。これは意図していたパスだったのだが、「システム環境変数(S)」の「Path」を確認したところ、

C:\Python310
C:\Python310\Scripts

となっていた。とりあえずこちらを「(ユーザー名)のユーザー環境変数(U)」の「Path」に変更することで、この記事の出発点であったModuleNotFoundError: No module named ‘googletrans’エラーは出なくなった。

謎が謎を呼ぶ…

冒頭に述べた通り、当該PCには「anaconda」「MicrosoftStoreからインストールできるPython」「VSCodeの拡張機能からインストールできるPython」「Python Software Foundationが配布するexeファイル」を入れてきた経緯があり、おそらくこれが今回の原因と考えられる。パッケージ毎のインストール先の違い、VSCodeをメインで使う上でのパッケージの選択、インストール先、Pathについては追って調査したい…

参考

Python3 – pip をアップデートする方法
https://www.curict.com/item/5a/5ac72d2.html

pipでアップデートするときのコマンド pip update
https://qiita.com/HyunwookPark/items/242a8ceea656416b6da8

pipのインストール先変更
https://qiita.com/Ma2021/items/43fa35d17102c63fa579

pip 使おうとしたら
http://var.blog.jp/archives/75951515.html