VSCodeでのPython実行時に、No module named '<モジュール名>'が'出たので解決した
結論
・原因
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のパスを確認しました。
python
と検索して、下にスクロールすると、Python:Python Path
という項目があります。
ここが、C:\Users\(ユーザー名)\Anaconda3\python.exe
となっていました。
以前、Anacondaをインストールしたのですが、なくても実行できそうなのでアンインストールしました。
しかし、VSCodeのパスはAnacondaのpython.exeを指していたため、ここが原因だったようです。
そこで、以下のようにパスをPython3.9のpython.exeファイルに変更しました。
C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python39\python.exe
パス変更後、念のため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