VSCodeでのPython開発でNo module namedのエラーが出る時の対処法



Visual Studio Code(VSCode)を使ってPython開発を行なっていく際に、「ModuleNotFoundError: No module named ‘pandas’」のようなエラーに遭遇することがあります。
ModuleNotFoundErrorは、importでモジュールが読み込めなかった時に発生するエラーです。
ライブラリはインストールしてあるはずなのに、なぜインポートできないのかと悩まされることでしょう。
(ライブラリは複数のパッケージやその中のモジュールの総称のこと)

ライブラリはPythonのバージョンごとで管理されますので、複数のバージョンのPythonをインストールされている方は、Pythonプログラムを実行する環境を変えたことで、ModuleNotFoundErrorとなります。
また、VScodeを開発環境としている場合は、ライブラリのパスを指定しておかないと読み込むことができません。

ここでは、VSCodeでのPython開発でNo module namedのエラーが出る時の対処方法として、VScodeでの設定の流れをご紹介します。

ライブラリのパスを確認する


データ解析でよく利用されるPandasというライブラリを例に見ていきます。
ここではmacOSでの操作で見ていきます。
Windowsも流れは同じです。

まず、パスを通すためにライブラリを管理している場所の情報が必要になります。
パッケージ管理ツールのpipコマンドを使って、ライブラリの情報を確認します。

ターミナルにて、「pip show pandas」のようにライブラリの情報を表示します。
Location」の情報にてパスが確認できます。
サンプルでは、「/Users/ユーザー名/.pyenv/versions/3.10.13/lib/python3.10/site-packages」になります。
site-packagesディレクトリの中に、Python 3.10.13を使っていた時にインストールしたライブラリが格納されています。

Pythonのライブラリの情報を確認する



ライブラリのパスが確認できましたら、パスの設定で必要になりますのでクリップボードにコピーしておきましょう。

VSCodeでの設定


続いて、VSCodeでの設定について見ていきます。
VScodeエディタの左メニューの歯車アイコンから、設定(Settings)に進みます。

VSCodeの左メニューの歯車アイコンから設定に進む



設定画面の検索窓に「Extra Paths」と検索します。(小文字だけでも検索できます)
Python > Analysis: Extra Paths」の項目にて、「Add Item」のボタンを選択して、先ほど調べたライブラリが格納されているディレクトリのパスを設定に追加します。

VSCodeにPythonのライブラリが格納されているディレクトリのパスを追加する



VScodeがライブラリのパスを認識することで、問題なくライブラリを読み込むことができます。

インタプリタの設定も確認


複数のPythonのバージョンを管理している場合は、ライブラリを管理しているPythonと同じバージョンを利用する必要があるので、インタプリタの設定も確認しておくといいでしょう。
エディタ画面右下の表示されているPythonのバージョンを選択して、インタプリタの設定にて、同じPythonのバージョンを選択して利用していきます。

Pythonのインタプリタの設定も確認する



インタプリタの設定については、VScodeのメニューの「View」から「Command Palette」を選択し、コマンドパレットの検索窓に「Python: Select Interpreter」を入力して選択してもインタプリタの設定に進めます。

以下の記事の「VScodeでのインタプリタの設定」の項目で詳しくご紹介しています。

最後に


Pythonのライブラリは、Pythonのバージョンごとで管理されます。そして、VScodeなどのコードエディタでは、ライブラリを含めPythonのパスを通してあったも、コードエディタ側で認識しないものもあります。

VScodeでPython開発をする際は、利用するPythonのバージョンも合わせて、ライブラリのパスの設定・確認しておきましょう。