【Python】IDLEでimport requestsを実行してもModuleNotFoundErrorが出る場合の対処法

プログラミング

概要

Pythonの入門書などで統合開発環境のIDLEを使用することが多いので、実際に利用されている方も多いと思います。

本記事はHTTP通信用のライブラリであるrequestsをインポートしたときにエラーがでる場合の対処法についてまとめました。

なお、本記事を読めばrequestsに限らずインポートするときに出る同様のエラーは解決できると思います。

私は「退屈なことはPythonにやらせよう」のワークでこの問題に直面しました。

 

 

問題

“import requests”とIDLEのインタラクティブシェルに入力した際に、“ModuleNotFoundError”エラーが発生することが今回の問題です。

私の場合はターミナルでrequestsモジュールをインストールしてあるにも関わらず発生しました。

環境

  • パソコン:Macbook Air M1チップ

 

解決法

requestモジュールはPython付属ではないので、インストールする必要があります。

ターミナルを開き、”pip install requests”と入力して実行してください。

requestsモジュールをインストールできたら、IDLEを開き、インタラクティブシェルに”import requests”と入力し、実行してください。

エラーメッセージが表示されなければ、requestsモジュールは正しくインストールされています。

 

しかし、私はそれでもエラーメッセージが発生しました。

 

次に確認すべきことは、本当にrequestsモジュールがインストールされているかどうかです。

ターミナルで”pip list”と入力して実行してください。

次に確認すべきはターミナルでインストールしたPythonとIDLEに入っているPythonのバージョンが合っているか確認することです。

インストールされていれば、”requests”とそのバージョンが出力されます。

 

ターミナルでrequestsモジュールがインストールされていることを確認したうえで、IDLEでエラーが発生する場合はIDLEが参照するパスを確認していきます。

IDLEで下記の通り入力して実行してください。

import sys

sys.path

実行するとIDLEが参照しているパスが出力されます。

次に、ターミナルで”pip show requests”と入力してください。

Locationと記載されているところにrequestsモジュールが保存されているパスが出力されます。

 

ここでIDLEがrequestsモジュールが保存されているパスを参照していないことが分かります。(この場合はそもそもPythonのバージョンが異なっていました。)

この問題を解決するために、IDLEで下記の通り入力して実行してください。

import sys

sys.path.append(‘ターミナルのLocation以降’)  

#上記の場合は ‘/Users/ユーザー名/anaconda3/lib/python3.10/site-packages’

 

ここまで実行したら、再度IDLEでimport requestsと入力して実行してください。

実行してエラーメッセージが出なければ成功です。

まとめ

最終的に原因はPythonのバージョンが異なっていたことですが、パソコン次第では最新版で動作しないなどの可能性があるため、この現象は起こりうると思います。

また、解決方法がパスの確認なので、requestsモジュールに限らず他のモジュールでエラーが発生した場合にも応用できます。

Pythonを使い始めた当初はこのようなエラーに頭を悩ますことが多いので、ひとつずつ解決していきましょう。

本記事がその助けになれればと思います。

コメント

タイトルとURLをコピーしました