我使用openweathermap.org API在python中有一个天气程序。主文件位于目录中,但我在Tkinter
窗口中想要的图像位于image/
目录中。目前,我已将图像放入我的python脚本的文件夹中,但内部有很多图像,所以它看起来不整洁。我通过以下方式将图像调到窗口上:
imageURL = str(icon + ".gif")
photo = PhotoImage(file=imageURL)
w = Label(window, image=photo)
w.photo = photo
但是当我尝试使用时:
imageURL = str("images/" + icon + ".gif")
它只返回错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1470, in __call__
return self.func(*args)
File "C:\Python27\lib\lib-tk\Tkinter.py", line 531, in callit
func(*args)
File "H:\Weather statioN\weather.py", line 55, in init
photo = PhotoImage(file=imageURL)
File "C:\Python27\lib\lib-tk\Tkinter.py", line 3306, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "C:\Python27\lib\lib-tk\Tkinter.py", line 3262, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
TclError: couldn't open "09d.gif": no such file or directory
有什么方法可以解决这个问题吗?
答案 0 :(得分:2)
追溯提到你仍然使用icon + '.gif'
-
self.tk.call(('image', 'create', imgtype, name,) + options)
TclError: couldn't open "09d.gif": no such file or directory
检查您是否错过了添加代码,或者错过了将图像复制到之前测试的图像目录中。
此外,建议使用os.path
库使用当前操作系统的路径分隔符自动连接目录路径,这将使脚本平台独立。
import os.path
os.path.join('images',icon + '.gif')
您可以根据自己的情况使用上述代码。