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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

695閲覧

[Python] ModuleNotFoundError: No module named 'PIL'の解決方法

yuusuke

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2024/08/04 03:06

編集2024/08/04 08:19

実現したいこと

「Python1年生」の第4章のChapter4で画像表示アプリを作っているのですが、「No module named 'PIL'」のエラーが出て先に進めません。

過去質問で同様の質問をされている方がおられ「pipでPillowをインストールしているPythonとPillowを使おうとしているPythonが同じではない可能性が高いです。」とコメントを頂き「コードを動かしているpythonを確認するよう指示されて結果

「/Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10 のパスを確認しpillowモジュールをインストールすると解決されたようですが、私の場合は
C:\Users\ゆうすけ\AppData\Local\Programs\Python\Python312\pythonw.exe
とパスが表示されモジュールがインストールできませんでした。

発生している問題・分からないこと

Traceback (most recent call last):
File "/Users/marumaru/Downloads/displmage.py", line 3, in <module>
import PIL.Image
ModuleNotFoundError: No module named 'PIL'```

エラーメッセージ

error

1Traceback (most recent call last): 2File "/Users/marumaru/Downloads/displmage.py", line 3, in <module> 3import PIL.Image 4ModuleNotFoundError: No module named 'PIL'```

該当のソースコード

import tkinter as tk
import tkinter. filedialog as fd
import PIL. Image
import PIL.ImageTk

def dispPhoto (path):
# 画像を読み込む
newImage = PIL. Image. open (path).resize((300,300))
# そのイメージをラベルに表示する
imageData =PIL.ImageTk.PhotoImage(newImage)
imageLabel.configure(image = imageData)
imageLabel.image=imageData

def openFile():
fpath = fd. askopenfilename ()

if fpath: dispPhoto(fpath)

root = tk. Tk()
root.geometry ("400×350")

btn = tk.Button(text="ファイルを開く",command = openFile)
imageLabel = tk. Label()
btn. pack()
imageLabel. pack()
tk. mainloop()

再確認のためソースコードを再度張り直ししました。

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

こちらのサイトにたどり着き、全く同じ現象だったのですがpythonのパスが違いました。

補足

特になし

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

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

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

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

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

TakaiY

2024/08/04 05:44

> C:\Users\ゆうすけ\AppData\Local\Programs\Python\Python312\pythonw.exe > とパスが表示されモジュールがインストールできませんでした。 ソースコードの問題ではなく、使っているpythonの環境にPILがインストールされていないのが原因ですので、 ・python および PILをどのようにインストールしたのかの手順 ・「インストールできませんでした」と判断した根拠 ・ pip list などの、インストールされているモジュールの確認結果 ・ pythonインタプリタを起動して import PIL を実行したときの結果 あたりを追記することはできますか。 追記はここではなく、質問を編集して追記ください。
meg_

2024/08/04 05:45

> 「Python1年生」の第4章のChapter4で画像表示アプリを作っているのですが、「No module named 'PIL'」のエラーが出て先に進めません。 上記(「Python1年生」の第4章のChapter4)ではそのモジュールについてどういう指示になっているのでしょうか?
yuusuke

2024/08/04 06:24

meg_ さま モジュールにつきまして書籍ではWindowsにインストールする方法として コマンドプロンプトを起動し、「py -m pip install pillow」と入力するように指示があります。
meg_

2024/08/04 07:58

> モジュールにつきまして書籍ではWindowsにインストールする方法としてコマンドプロンプトを起動し、「py -m pip install pillow」と入力するように指示があります。 その指示通りに実行したけれども”ModuleNotFoundError: No module named 'PIL'”のエラーが発生したのですか?それとも実際には別の方法を実行されて現在に至るのでしょうか?
yuusuke

2024/08/04 08:13

meg_さま 指示通りに実行してそちらのエラーが発生いたしました。 その後はhiroki-oさまのご指示を試してみただけになります。
meg_

2024/08/04 08:59

> モジュールにつきまして書籍ではWindowsにインストールする方法として コマンドプロンプトを起動し、「py -m pip install pillow」と入力するように指示があります。 ・上記を実行後に”Successfully installed"のようなメッセージは表示されましたか?(インストールは成功しましたか?) ・インストール成功している場合、そのままのプロンプトで 該当のソースコード のコードを実行しましたか? ※コードはインデントが判るように記入しましょう。
guest

回答2

0

過去質問で同様の質問をされている方がおられ「pipでPillowをインストールしているPythonとPillowを使おうとしているPythonが同じではない可能性が高いです。」

ここまでは合ってます。他の可能性としてはタイプミスですが、今回は大丈夫でしょう。

私の場合はC:\Users\ゆうすけ\AppData\Local\Programs\Python\Python312\pythonw.exeとパスが表示されモジュールがインストールできませんでした。

ここからいきなり主観表現なので、状況が不明です。
・「とパスが表示され」
・「インストールできませんでした」
の両方について、「どういうコマンドを実行して、どういう結果になったか」を(全部コピペで)書きましょう。

pythonw.exeはGUIアプリなので、pipなどのコンソール前提のプログラムだと、結果やエラーメッセージが見えませんので不適です。同じ場所にpython.exeがあるはずなので、

CMD

1C:\Users\ゆうすけ\AppData\Local\Programs\Python\Python312\python -m pip install Pillow 2C:\Users\ゆうすけ\AppData\Local\Programs\Python\Python312\python -m pip list

とかで。
(日本語を含むパス名の場所に言語処理系をインストールした経験が無いので、それによる影響については全く知りません)

投稿2024/08/04 06:22

otn

総合スコア86277

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

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

yuusuke

2024/08/04 08:47

otnさま お世話になります。 「どういうコマンドを実行して、どういう結果になったか」につきまして pythonにて import sys print(sys.executable) を実行 = RESTART: C:/Users/ゆうすけ/Desktop/パイソン/新しいフォルダー/dispimage.py C:\Users\ゆうすけ\AppData\Local\Programs\Python\Python312\pythonw.exe が表示されました コマンドプロンプトの画面で C:\Users\ゆうすけ>C:\Users\ゆうすけ\AppData\Local\Programs\Python\Python312\pythonw.exe -m pip install pillow と入力 C:\Users\ゆうすけ>  と結果が表示されました。 CMD?にて頂いたコマンドを入力したところリストに pillow 10.4.0 と表示されておりました。
otn

2024/08/04 09:39

> pythonにて というのが「どういうコマンドを実行して、」の回答になっていません。 import sys print(sys.executable) の2行だけ書いたファイルを作って、コマンドプロンプトの画面で C:\Users\ゆうすけ>python そのファイル名 と実行したのでもなく、コマンドプロンプトの画面で C:\Users\ゆうすけ>python ・・・と入力して、 Python 3.12.4 (tags/v3.12.4:8e8a4ba, Jun 6 2024, 19:30:16) [MSC v.1940 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys ・・・と入力 >>> print(sys.executable) ・・・と入力 と実行したのでもないと思いますが、実際に何をやったのでしょうか? いずれにせよ、「複数のPythonがインストールされている」のならば、「複数あるPythonのうちで、No moduleのエラーが出た時に時にコードを動かしているpython」で、上記のプログラムを実行しないと意味がないですが、そのあたりはどのような判断をして(=どのような思考過程を経て)「このPythonで間違いない」と決めましたか? > CMD?にて頂いたコマンドを入力したところリストに > pillow 10.4.0 と表示されておりました。 これも意味不明です。コマンドを2行書きましたが、1行目はインストールなので、 ・インストールが成功した (Successfully installed ~~ 等) ・インストール済み (Requirement already satisfied ~~ 等) が表示されるはずで、「pillow 10.4.0」だけが表示されるということはあり得ません。
guest

0

ベストアンサー

Windows 11、Python 3.12.4で確認しました。

(過去の質問)
https://teratail.com/questions/376077
インデントが無かったり、#が全角だったりするところまで丸写しです。

venvでクリーンな環境で試したところ、pillowのインストールだけで問題無く動作します。
コマンドプロンプトで以下の手順を試してください。
(仮想環境名をtest、ソースをtest.pyとした場合)

python -m venv test test\Scripts\activate python -m pip install pillow python test.py

投稿2024/08/04 04:14

hiroki-o

総合スコア1352

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

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

yuusuke

2024/08/04 06:15

回答ありがとうございます。コマンドプロンプトでご指示通りの入力を試してみましたが 以下の表示結果になりました。 (test) C:¥Users¥ゆうすけ>python -m pip install pillow Collecting pillow Using cached pillow-10.4.0-cp312-cp312-win_amd64.whl.metadata (9.3 kB) Using cached pillow-10.4.0-cp312-cp312-win_amd64.whl (2.6 MB) Installing collected packages: pillow Successfully installed pillow-10.4.0 [notice] A new release of pip is available: 24.0 -> 24.2 [notice]To update, run: python.exe -m pip install --upgrade pip (test) C:¥Users¥ゆうすけ>python test.py C:\Users\ゆうすけ¥AppData¥Local\Programs\Python\Python312\python.exe: can`t open file `C:\\Users\\ゆうすけ\\test.py": [Errno 2] No such file or directory (test) C:¥Users¥ゆうすけ> この場合どの辺りに原因がありそうでしょうか? お手数をおかけしますがよろしくお願いいたします。
hiroki-o

2024/08/04 06:21

test.pyは、実際には、どこにありますか?
yuusuke

2024/08/04 06:31

初歩的な質問で申し訳ありませんが問題のコードのpythonファイルでしょうか? でしたらこちらになります。 C:\Users\ゆうすけ\Desktop\パイソン\新しいフォルダー\displmage.py よろしくお願いいたします。
hiroki-o

2024/08/04 06:32

でしたら、 python C:\Users\ゆうすけ\Desktop\パイソン\新しいフォルダー\displmage.py と叩いてみてください。
yuusuke

2024/08/04 07:16

コマンドプロンプトで入力すると下記が表示されました。 Traceback (most recent call last): File "C:\Users\ゆうすけ\Desktop\パイソン\新しいフォルダー\displmage.py",line 4, in<module> import PIL.imageTk ModuleNotFoundError:No module named `PIL.imageTk` もはや全く理解できておりません。 重ね重ね申し訳ありませんがよろしくお願いいたします。
hiroki-o

2024/08/04 07:25

venvでpillowのインストールには成功しているので、 python test.py の代わりに python C:\Users\ゆうすけ\Desktop\パイソン\新しいフォルダー\displmage.py で絶対に動くはずです。 動かないなら、こちらの指示通りに作業していないか、何かを隠しているのでしょう。
yuusuke

2024/08/04 11:01

ご回答ありがとうございます。 お手数をおかけしました。 pythonを再インストールし直し、一からやり直したら解決しました。(問題はわからなかったですが・・・) シンプルな受け答えをして頂き、初心者にもわかりやすかったのでベストアンサーに選ばせていただきました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問