from tkinter import *
root = Tk()
photo = PhotoImage(file='blueface.png')
label = Label(root, image=photo)
label.pack()
root.mainloop()
image face.png与此.py脚本位于同一目录中,但是当我运行它时,我收到以下错误:
line 5, in <module>
photo = PhotoImage(file='blueface.png')
line 3539, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
line 3495, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't open "face.png": no such file or directory
答案 0 :(得分:2)
旧版本的tkinter无法很好地处理.png。尝试将文件设为.gif。或者使用PIL中的PhotoImage:
import tkinter as tk
from PIL import Image, ImageTk
root = tk.Tk()
photo = ImageTk.PhotoImage(Image.open('blueface.png'))
label = tk.Label(root, image=photo)
label.pack()
root.mainloop()
答案 1 :(得分:2)
图像与脚本位于同一文件夹中并不重要,当您调用文件时没有路径python假定它与您正在处理的文件夹相同当你启动脚本时。例如,如果脚本和图像都在temp
文件夹中,并且您启动了这样的脚本:
python temp/script.py
解释程序没有意识到blueface.png
也位于temp
并在您所在的文件夹中查找,在这种情况下是temp
的父文件1} p>
您应该做的是使用绝对路径,或使用__file__
来获取完整的脚本地址。例如:
photo = PhotoImage(file='/absolute/path/to/image/blueface.png')
或使用当前脚本的位置来构建图片的路径:
import os
base_folder = os.path.dirname(__file__)
image_path = os.path.join(base_folder, 'blueface.png')
photo = PhotoImage(file=image_path)