質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

1189閲覧

Python no module named エラーを解消したい

Matthe

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

1グッド

0クリップ

投稿2022/12/12 15:38

超初心者です。すみません。
Python 2年生をなぞって、requestsをインストールしたのですが、
ModuleNotFoundError: No module named 'requests'
と出てしまいます。
様々な解決策を試してみた(Moduleの名前を正確に、Pathを通す等)のですが、
どうやっても解決できません。
やったこと
pip istall requests
を実行
pip show requestsで
Name: requests
Version: 2.28.1
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: /Users/〇〇/.pyenv/versions/3.10.5/lib/python3.10/site-packages
Requires: certifi, charset-normalizer, idna, urllib3
Required-by:
こんな感じなのでインストールはされているんだと思ってます。

で、PATHを通すというところがあまりよくわかりません。
% $echo $PATHですと以下のような表記になります。
zsh: no such file or directory: /Users/○〇/.pyenv/shims:/Users/〇〇/.pyenv/bin:/Users/〇〇/.pyenv/bin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

上記のrequestsのLocationを勘案、これではPATHが通っていないということでしょうか?
その場合、どのようにしたら良いでしょうか。よろしくお願いします

Matthe👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2022/12/12 20:58

pythonで下記を実行して、使ってるpythonの絶対パスを調べてください import sys print(sys.executable) 上記で調べた絶対パスが、たとえば /aaa/bbb/python だとしたら、ターミナルで(pythonが起動してない状態で)下記を実行したら、インポートできるようになると思います (実行する際は、調べた実際のpythonの絶対パスに置き換えてください) /aaa/bbb/python -m pip install requests
Matthe

2022/12/13 15:44

早速にありがとうございます。 import sys print(sys.executable) を実行したところ以下の表記となっています。 /Users/〇〇.pyenv/versions/3.10.5/bin/python
Matthe

2022/12/13 15:47

ご指示頂いた /aaa/bbb/ に該当する部分が以下に該当するという理解でしょうか。。。 /Users/〇〇.pyenv/versions/3.10.5/bin 本当に稚拙な質問ですみません
jbpb0

2022/12/13 16:46

そうです
Matthe

2022/12/13 23:59

すみません。もう少しお付き合いください。 ご指示の通り /Users/〇〇.pyenv/versions/3.10.5/bin/python -m pip install requests を実行しました。以下の内容が出てきております。 Requirement already satisfied: requests in ./.pyenv/versions/3.10.5/lib/python3.10/site-packages (2.28.1) Requirement already satisfied: charset-normalizer<3,>=2 in ./.pyenv/versions/3.10.5/lib/python3.10/site-packages (from requests) (2.1.1) Requirement already satisfied: idna<4,>=2.5 in ./.pyenv/versions/3.10.5/lib/python3.10/site-packages (from requests) (3.4) Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./.pyenv/versions/3.10.5/lib/python3.10/site-packages (from requests) (1.26.13) Requirement already satisfied: certifi>=2017.4.17 in ./.pyenv/versions/3.10.5/lib/python3.10/site-packages (from requests) (2022.12.7) WARNING: You are using pip version 22.0.4; however, version 22.3.1 is available. You should consider upgrading via the '/Users/〇〇/.pyenv/versions/3.10.5/bin/python -m pip install --upgrade pip' command "requirement satisfied"と出ているのですが、やはり、No module named 'requests'の表記が出てしまいます 申し訳ありません
Matthe

2022/12/14 03:42

解決しました。ターミナルで実行している分においては対応できました。ありがとうございます。 ただ、IDLEでコードを書いて実行すると同じエラーが出てしまいます。 もし、他のスレッドを立てた方が良いのであればそのようにします。
jbpb0

2022/12/14 03:48

ターミナルとidleで、 print(sys.executable) を実行した結果は同じでしょうか?
Matthe

2022/12/14 04:40

いえ、IDLEでは /Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 ターミナルでは /Users/〇〇/.pyenv/versions/3.10.5/bin/python です
jbpb0

2022/12/14 04:44

> IDLEでは /Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 それでしたら、インストールするコマンドは下記のようになります /Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 -m pip install requests
Matthe

2022/12/14 06:54

インストールはできたのですが。。。 python2年生に記載されているコードを入力、実行してみたのですが上手く走らない感じです (HTMLを取り出すコードです) その他のコードを試してみましたが、ターミナルからのインタラクティブシェルに入力、実行すると想定通りの結果になりますが、IDLEですと、どのmoduleもNo module namedのエラーが出てしまいます・・・ (例えば、beautifulsoupとかPILとか)
jbpb0

2022/12/14 10:40

ターミナルで(pythonが起動してない状態で) /Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 -m pip show requests を実行してください いろいろ表示される中に「Location:」で始まる行があるので、そこに書かれてるパスを記録してください 次に、idleのpythonで下記のpythonコードを実行してください import sys import pprint pprint.pprint(sys.path) たくさんパスが表示されますが、その中に「.../python3.11 -m pip show requests」で記録したパスが入ってますでしょうか?
Matthe

2022/12/14 15:24

遅くなりました。最後段に入っております。
jbpb0

2022/12/14 21:44

それでも、idleで import requests を実行したら、「ModuleNotFoundError: No module named 'requests'」になるのですか?
Matthe

2022/12/15 15:31

申し訳ないです。 Python2年生に記載のある下記のコードをIDLEで実行しようとするとSyntax invalidと出てしまいます。 (No module named requests とは違うエラーなのでしょうが。。。) 万事うまく流れないので、常にIDLEではなく、インタラクティブシェルでやった方が良いのでしょうか。 Python 3.11.0 (v3.11.0:deaf509e8f, Oct 24 2022, 14:43:23) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin Type "help", "copyright", "credits" or "license()" for more information. >>> import requests >>> image_url="https://www.ymori.com/books/python2nen/sample1.png" >>> imgdata=requests.get(image_url) >>> filename=image_url.split("/")[-1] >>> with open(filename, mode="wb") as f: ... f.write(imgdata.content) また、同様に下記のコードでは”ModuleNotFoundError: No module named 'bs4'”とのメッセージが出てしまいます。requestsは認識されているということかと思いますが・・・ しっちゃかめっちゃかですみません。。。 import requests from bs4 import BeautifulSoup load_url="https://www.ymori.com/books/python2nen/test1.html" html=requests.get(load_url) soup=BeautifulSoup(html.content, "html.parser") print(soup)
jbpb0

2022/12/15 22:25

import requests だけを実行してエラーにならないなら、requestsはインストールできてます > ModuleNotFoundError: No module named 'bs4' /Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 -m pip install beautifulsoup4 でインストールしましたでしょうか? 他にも「ModuleNotFoundError:」になるものがあれば、同様にしてインストールする必要があります
jbpb0

2022/12/15 22:39

> Syntax invalidと出てしまいます。 それはこの質問とは別内容なので、解決したければ、別の質問にしてください > 常にIDLEではなく、インタラクティブシェルでやった方が良いのでしょうか。 idleを使わずに進められるのなら、それでもいいと思いますが、私はその書籍を持ってないので、書籍の内容の全部がidleを使わずに済むのかは分かりません とりあえずはidleを使わずに、ターミナルで対話モードで実行していき、idleが必須の内容が出てきたら、どうするかその時に考えたらいかがでしょうか (書籍の最後までidle要らないかもしれないし)
Matthe

2022/12/16 15:11

ありがとうございます。本当にもろもろすみませんでした。
guest

回答1

0

ModuleNotFoundError: No module named 'requests'

pythonで下記を実行して、使ってるpythonの絶対パスを調べてください

python

1import sys 2print(sys.executable)

 
上記で調べた絶対パスが、たとえば
/aaa/bbb/python
だとしたら、ターミナルで(pythonが起動してない状態で)下記を実行したら、インポートできるようになると思います
(実行する際は、調べた実際のpythonの絶対パスに置き換えてください)

terminal

1/aaa/bbb/python -m pip install requests

投稿2022/12/17 00:02

jbpb0

総合スコア7651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問