upskill
@upskill (学 高島)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

python 画像ファイルが開けない

解決したいこと

tkinter.PhotoImage(file="IMG_0133.png")

発生している問題・エラー

あるはずのファイルがno such file or directory となってしまう

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

import tkinter

root = tkinter.Tk()
root.title("初めてのキャンバス")
canvas = tkinter.Canvas(root, width=415, height=739, bg="skyblue")
canvas.pack()
gazou = tkinter.PhotoImage(file="IMG_0133.png")
canvas.create_image(415, 739, image=gazou)

root.mainloop()

画像ファイルは参考書のサポートページからダウンロードしてプログラムと同じフォルダに入れて
実行しました

0

2Answer

コードをそのまま実行したら問題なく動きました。
IMG_0133.png というファイルがカレントディレクトリに本当に存在していないのではないですか?

0Like

Comments

  1. @upskill

    Questioner

    返信ありがとうございます。
    ファイルは存在しているのですがなぜ動かないのかわかりません
  2. ls -l IMG_0133.png
    を実行したら、No such file or directory にはならないんですね?

    なのに、同じ場所で
    python app.py
    を実行したら couldn't open "IMG_0133.png": no such file or directory になるんですね?
  3. @upskill

    Questioner

    はい そうです 

  4. @upskill

    Questioner

    参考書によると画像ファイルは同じフォルダに入れてくださいと書いてあったので同じフォルダに入れたのですがうまくいきません
  5. 不思議ですね…。

    実は私も今上記のコメントの中で間違えていたので、今修正したのですが、
    ファイル名の - と _ とが違っていたりはしないですか?
    もしかしたらと思いましたので、念のため…
  6. @upskill

    Questioner

    間違えてないです。 ほかの画像ファイルでもいくつかやってみましたがうまくいきませんでした。 なにか最終手段的なものはありますか?
  7. あれ?
    今 @hakatakinoco さんとのやり取りを読み直したのですが、
    .pyファイルはカレントディレクトリではなく別のディレクトリにあるのですか?
    そして python <別のディレクトリ>/app.py のように実行しているのですか?
    それはいいんですけど、もしかして画像ファイルもその.pyと同じ <別のディレクトリ> にあるのではないですか?
    提示のコードではパスなし(したがってカレントディレクトリ)のファイルを指定しているので、<別のディレクトリ>にあるのではダメです。
    ls ./IMG_0133.png でカレントディレクトリにあることを確認してください。
  8. @upskill

    Questioner

    すみません先ほど実行するときにパスを何階層か記入する指定をしていることに気づきました。
  9. @upskill

    Questioner

    ls ./IMG_0133.png でカレントディレクトリにあることを確認したところ存在しないようです。別のディレクトリにある場合、ファイルパスを指定すればできますか?
  10. ですよね。原因がわかりましたね。なので IMG_0133.png をカレントディレクトリに移動(またはコピー)すればよいのです。それはわかりますか?
  11. @upskill

    Questioner

    パスを指定したところ実行できました! サポートしていただき本当にありがとうございました。

こんばんは

ファイルがあるのにないと言われる問題は概ね

  • 本当にそのファイル名がない(スペルミス、全角半角、変なところにスペースが入ってて気づかない)
  • 実行コマンドを叩く場所を間違ってる
  • アクセス権がない

である事が経験上多かったです

ご質問と他の方とのやりとりを見る感じ、2番目の実行する場所を間違ってるが濃厚かなぁと言う印象だったのですが

例えば実行する時
python3 ./sample/other/app.py

の様な、パスを何階層か記入する指定をされておりませんでしょうか?

0Like

Comments

  1. @upskill

    Questioner

    返信ありがとうございます。
    実行するときにパスが何回層か記入する指定になっているようです。
    どうすればいいですか?
  2. @itagagaki さん、フォローありがとうございます

    私が気になっていたポイントが当たっていそうでよかったです
  3. @upskill

    Questioner

    パスを指定したところ実行できました! パスを何階層か記入する指定について指摘してくださりありがとうございました。

Your answer might help someone💌