📝
Visual Studio Code での Python 実行時に No module named ... が発生した原因と解決策
結論
- 原因: Visual Studio Code の Python パスが間違っていた
- 解決策: Visual Studio Code の Pythonの パスを修正する
発生した問題
Visual Studio Code で Python を実行したところ、import の時点で以下のエラーが発生しました。
例外が発生しました: ModuleNotFoundError
No module named '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. Visual Studio Code のパスを変更 (解決)
Visual Studio Code の設定から Python のパスを確認しました。
「python」と検索して下にスクロールすると、「Python:Python Path」という項目があります。
ここが C:\Users\(ユーザー名)\Anaconda3\python.exe
となっていました。
以前検証用にインストールした Anaconda をアンインストールしたのですが、Visual Studio Code のパスが Anaconda の python.exe を指していたことがエラーの原因でした。
そこで、以下のようにパスを Python3.9 の python.exe ファイルに変更しました。
-
C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python39\python.exe
パス変更後、念のため Visual Studio Code を再起動しました。
再起動後、再度モジュールのインストールが必要だったため以下のコマンドを実行しました。
$ pip install mysql-connector-python
$ pip install mysql
$ pip install mysql-connector
モジュールインストール後に Python ファイルを実行したとこ、エラーは発生しなくなりました。
ファイル名にも注意が必要
冒頭のエラーは、ファイル名が原因でも発生するようです。
例:
-
mysql.py
というファイルを作成。 -
import mysql
を定義すると インストールした mysql ライブラリではなく作成したファイルが読み込まれる - mysql 関連のメソッドを実行しようとするとエラーが発生
以上より、既存ライブラリと自作ファイル名の競合にも気を付ける必要があるようです。
まとめ
今回は Visual Studio Code での Python 実行時に No module named ... が発生した原因と解決策を紹介しました。
どなたかの参考になれば幸いです。
Discussion