Inc*_*sum 0 python tkinter python-imaging-library tkinter-canvas python-3.5
给定的代码不起作用,因为它给出了'haridwar.jpg'找不到文件的错误,尽管我尝试将它放在Python35和桌面上.请帮忙
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()
Run Code Online (Sandbox Code Playgroud)
根据您的问题判断,您可能没有将文件放在合适的位置; 你也没有提供这些地点的路径.所以让我们分解一下吧.
你说你把图像放在Python35文件夹中.不知道更多我会想象你正在谈论位于某个地方的python默认目录C:\program files\Python35.
如果是这种情况,则更改该行:
im=Image.open("haridwar.jpg")
Run Code Online (Sandbox Code Playgroud)
对此:
im=Image.open("C:\program files\Python35\haridwar.jpg")
Run Code Online (Sandbox Code Playgroud)
虽然这不适合你的形象.我们将在一秒钟内完成.
如你所说,你也试过你的桌面.因此,您需要提供桌面路径.
像这样的东西:
im=Image.open("C:/Users/your_user_folder/Desktop/haridwar.jpg")
Run Code Online (Sandbox Code Playgroud)
这对您的文件来说也不是一个好地方.
让我们尝试别的东西.让我们把文件放在你工作的python目录中.
例如,如果您的main.py文件位于
"C:/myworkspace/my_program/main.py"
Run Code Online (Sandbox Code Playgroud)
然后你可以将该图像放在同一个my_program文件夹中,你的代码应该按原样运行.
如果你想拥有一个仅用于图像的文件夹,你可以在一个如下所示的目录中拥有一个文件夹:
"C:/myworkspace/my_program/my_images/haridwar.jpg"
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以提供如下的短路径:
im=Image.open("./my_images/haridwar.jpg")
Run Code Online (Sandbox Code Playgroud)
注意文件夹.之前/my_image.这用于告诉Python它可以查看文件夹的当前工作目录.
| 归档时间: |
|
| 查看次数: |
13023 次 |
| 最近记录: |