📝

VSCodeでのPython実行時に、No module named '<モジュール名>'が'出たので解決した

2021/12/22に公開

結論

・原因
 VSCodeのPythonパスが間違っていた
・解決策
 VSCodeのPythonのパスを修正する

発生した問題

VSCodeでPythonを実行したところ、以下のエラーが発生しました。

例外が発生しました: ModuleNotFoundError

No module named 'mysql'

import mysqlの時点で上記のエラーが発生していました。

試したこと

1. モジュールをインストール (解決せず)

下記のモジュールをインストールしました。

pip install mysql-connector-python
pip install mysql
pip install mysql-connector

結果:エラーは解消しませんでした。

2. pip3でインストール (解決せず)

1のモジュールをpip3でインストールしました。

pip3 install mysql-connector-python
pip3 install mysql
pip3 install mysql-connector

結果:エラーは解消しませんでした。

3. VSCodeのパスを変更 (解決)

VSCodeの設定からPythonのパスを確認しました。
image.png

pythonと検索して、下にスクロールすると、Python:Python Pathという項目があります。
ここが、C:\Users\(ユーザー名)\Anaconda3\python.exeとなっていました。
image.png

以前、Anacondaをインストールしたのですが、なくても実行できそうなのでアンインストールしました。
しかし、VSCodeのパスはAnacondaのpython.exeを指していたため、ここが原因だったようです。

そこで、以下のようにパスをPython3.9のpython.exeファイルに変更しました。
C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python39\python.exe
image.png

パス変更後、念のためVSCodeを再起動しました。
再起動後、再度モジュールのインストールが必要だったため、以下を実行しました。

pip install mysql-connector-python
pip install mysql
pip install mysql-connector

モジュールインストール後に、Pythonファイルを実行したところ、エラーは発生しなくなりました。
無事解決しました。

ファイル名にも注意が必要

冒頭のエラーは、ファイル名が原因でも発生するようです。
例えば、mysql.pyというファイルを作成したとします。
import mysqlと記述すると、もともとのPythonのモジュールではなく、作成したファイルを読み込んでしまいます。
そのため、mysql.メソッド()を実行しようとすると、「そんなメソッドはないよ」というエラーが出ます。
既存モジュールとのファイル名競合にも気を付ける必要があるようです。

まとめ

今回は、VSCodeでのPython実行時に、No module named '<モジュール名>が'出たので、原因と解決法を紹介しました。
VSCodeのPython設定で、Pythonのパスが間違っていたことが原因だったので、パスを変更することで解決しました。
どなたかの参考になれば幸いです。

Discussion