前提・実現したいこと
requestsのモジュールを使いたい
発生している問題・エラーメッセージ
例外が発生しました: ModuleNotFoundError No module named 'requests'
該当のソースコード
python
1import requests
試したこと
・requestsがインストールされていることを確認
以下の記事での対処法を試しました
・Pythonが探索するパスのリストにrequestsがインストールされているパスを追加する
https://qiita.com/Kent_recuca/items/349586e9c034535f2991
補足情報(FW/ツールのバージョンなど)
macOS
python3.8.5
Anaconda3
VisualStudioCode
IDLE
あまりにも初心者なので、どういった情報を開示したら問題解決に繋がるかすらわかっていません。必要になる情報の種類を教えてくださればすぐに追加します。お手数ですがよろしくお願いします。
> ・requestsがインストールされていることを確認
”どこに”そのモジュールをインストールしたかが重要です。インストールしたpython環境と今実行しているpython環境が異なっている可能性が高いです。
返信ありがとうございます。
ターミナル内でpip show requests を使ってrequestsのモジュールがどこにインストールされているかを確認し、
IDLEでimport sysを使ってPythonが探索するパスのリストにrequestsがインストールされているパスを追加しました
それでもだめでした
https://qiita.com/Kent_recuca/items/349586e9c034535f2991
は信用しないでください。
ターミナルで動いているpythonとIDLEで動いているpythonは別なので、pythonとモジュールのバージョンの不整合が起きる可能性があります。
IDLEからrequestsが見えていないなら、IDLEで動いているpythonにrequestsをインストールすべきです。
pythonで
import requests
がうまくいかない状態で、
下記のpythonコードを実行した結果を教えてください
(ユーザー名等の個人情報は伏せ字にして)
import sys
import pprint
pprint.pprint(sys.path)
それと、requestsがインストールされているパスも教えてください
IDLEとターミナルは連動しているものではないのですね…そこから勘違いしていました。ppaulさん返信ありがとうございます。
jbpb0さん返信ありがとうございます。
提示頂いたコードをターミナルで実行した結果です↓
['',
'/opt/anaconda3/lib/python38.zip',
'/opt/anaconda3/lib/python3.8',
'/opt/anaconda3/lib/python3.8/lib-dynload',
'/opt/anaconda3/lib/python3.8/site-packages',
'/opt/anaconda3/lib/python3.8/site-packages/aeosa']
VisualStudioCodeでも実行した結果です↓
cd /Users/ユーザー名/Desktop/python_lesson ; /usr/bin/env /usr/local/var/pyenv/versions/3.9.1/bin/python /Users/ユーザー名/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/launcher 49983 -- /Users/ユーザー名/Desktop/python_lesson/test.py
['/Users/ユーザー名/Desktop/python_lesson',
'/usr/local/var/pyenv/versions/3.9.1/lib/python39.zip',
'/usr/local/var/pyenv/versions/3.9.1/lib/python3.9',
'/usr/local/var/pyenv/versions/3.9.1/lib/python3.9/lib-dynload',
'/usr/local/var/pyenv/versions/3.9.1/lib/python3.9/site-packages']
ターミナルでのpip show requestsの結果です↓
Name: requests
Version: 2.24.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: /opt/anaconda3/lib/python3.8/site-packages
Requires: idna, urllib3, certifi, chardet
Required-by: Sphinx, jupyterlab-server, conda, conda-build, anaconda-project, anaconda-client
二つのPythonが入ってます
ターミナルで使ってるのは
/opt/anaconda3
にあるAnaconda版Python 3.8で、pip show...の結果からも、pipでインストールしたものはそちらに入ってます
一方、VS Codeで使ってるのは
/usr/local/var/pyenv/versions/3.9.1
にあるPython 3.9です
二つ以上のPythonを入れるのは、ちゃんと分かって使い分けられるのならいいですが、よく分からないなら今回のようなことが起きて混乱する元になるので、そうしなければいけない理由が無いなら、止した方がいいですよ
今後使っていくPythonをどちらにするのか決めて、環境をそれに合わせて作り直すことをお勧めします
(環境変数pathの順番を見直す等)
たとえば、/opt/anaconda3 以下のpython, pip等(python3, pip3かも)があるパスをpathの先頭に追加してAnaconda版Pythonの優先順位を上げたら、おそらくVS Codeから使うPythonもAnaconda版になり、既にpipでインストールしたrequests等のimportも問題無く実行できるはずです
無事import requestsを突破できました。jbpb0さん、本当にありがとうございました
回答1件
あなたの回答
tips
プレビュー