GUI

-1

それは私がデスクトップにも Python35にそれを入れてみましたけれども「haridwar.jpg」の が見つかりませんファイルのエラーを与えるとして与えられたコードは、動作していない中でのTkinterを使って画像を表示する方法。私は正しかった私は知っているディレクトリ/ファイル名を使用してコードを試みたが、それが動作GUI

import tkinter as tk 
from PIL import Image,ImageTk 
root = tk.Tk() 
root.title("display image") 
im=Image.open("haridwar.jpg") 
photo=ImageTk.PhotoImage(im) 
cv = tk.Canvas() 
cv.pack(side='top', fill='both', expand='yes') 
cv.create_image(10, 10, image=photo, anchor='nw') 
root.mainloop() 
+0

エラーが発生した場合は完全なトラックバックを提供してください。また、スタックオーバーフローを歓迎します。ファイルが見つからない場合は、ファイルがプログラムと同じディレクトリに存在しない可能性があります。メインのpythonファイルの場所とイメージファイルの場所を指定できますか? –

+0

今のところ、完全なパスを使用してファイルを開こうとしてください。また、現在の作業ディレクトリを印刷してみてください。また、ファイルの名前のスペルは間違っていませんか?あなたはhardware.jpgを意味しましたか?あなたはeを欠いています。あなたには余分なものがあります。 –

+0

@SierraMountainTech、私は.py scipt "C:\ Users \ SAURAV DAS \ AppData \ Local \ Programs \ Python \ Python35 \ projects"と同じ作業ディレクトリに入れてみましたが、同じエラーが表示されます –

答えて

2

の「Image.jpg」を持っています。それらの場所へのパスも提供していません。だからそれを少し壊すことができます。

Python35フォルダに画像を置いたとします。もっと知っていなければ、C:\program files\Python35のようなどこかにあるpythonのデフォルトディレクトリについて話していると思います。

このような場合は、その後の行に変更します。これはあなたのイメージのために良い場所はありませんが

im=Image.open("C:\program files\Python35\haridwar.jpg") 

:これに

im=Image.open("haridwar.jpg") 

を。私たちはそれを数秒で得るでしょう。

また、あなたもあなたのデスクトップを試しました。だからあなたのデスクトップにパスを提供したいと思うでしょう。このような

何か:

im=Image.open("C:/Users/your_user_folder/Desktop/haridwar.jpg") 

また、これはあなたのファイルのための大きい場所ではありません。

他にも試してみましょう。ファイルを作業中のpythonディレクトリの中に置きます。あなたのmain.pyファイルが

"C:myworkspace/my_program/main.py" 

の内側に配置されている場合、あなたは同じmy_programフォルダにその画像を配置することができますし、あなたのコードがあるとして動作するはずです例えば

あなただけの画像用のフォルダを持っているしたい場合は、次のようになりますディレクトリ内の1つかもしれない:

im=Image.open("./my_images/haridwar.jpg") 
:あなたはこのような短いパスを提供することができます。この場合、

"C:myworkspace/my_program/my_images/haridwar.jpg" 

/my_imageフォルダの前には.があります。これは、Pythonにフォルダの現在の作業ディレクトリを見ることができるようにするために使用されます。

1

を助けてください。あなたのディレクトリ/ファイル名のスペルミスに誤りがあるか、ディレクトリが間違っています。

ディレクトリとファイル名が正しいことを確認してください。例えば

、私はあなたの質問あなたが良い場所にファイルを持っていない可能性がありますから判断すると、私のデスクトップ

import tkinter as tk 
from PIL import Image,ImageTk 
root = tk.Tk() 
root.title("display image") 
im=Image.open("C:/Users/<myname>/Desktop/Image.jpg") #This is the correct location and spelling for my image location 
photo=ImageTk.PhotoImage(im) 
cv = tk.Canvas() 
cv.pack(side='top', fill='both', expand='yes') 
cv.create_image(10, 10, image=photo, anchor='nw') 
root.mainloop() 
+0

なぜ投票が遅れたのですか? – jacoblaw

+0

あなたがOPの問題に対処しなかったため、下降がありました。あなたがしたのは、OPコードをコピーして、コードがうまく動作し、スペルミスがなければならないと伝えました。この問題は、オープンファイルがどのように機能するのか、コード自体ではなくOPの理解に問題がある可能性が高いので、回答者はOPが学べる方法でそれを分解して、悪い解決策。 (悪い解決策は、デスクトップ上のファイルを作業ディレクトリの中に置いています) –

+0

さて、彼らのしたことが間違っていた理由を徹底的に説明し、悪い習慣を正しい/説明することを心に留めておきます。 – jacoblaw