Итак, я запускаю python 2.6 на MacBook Pro и пытаюсь написать код на python для отображения изображения из файла на этикетке в интерфейсе tkinter. Изображение называется image.png. Программа работает без ошибок, когда я использую этот код
i = Image.open("image.png")
но когда я делаю этот код (я добавляю одну строку):
i = Image.open("image.png")
photo = ImageTk.PhotoImage(i)
Программа вылетит и выдаст сообщение «Ошибка шины» в командной строке. Я даже не знаю, что это значит. Я думаю, что PIL установлен правильно, так как Image работает, но тот факт, что ImageTk не работает, меня озадачивает. Кто-нибудь может сказать мне, что может быть причиной этой ошибки шины?
EDIT:
Ну, я сделал новую программу, чтобы проверить ошибку дальше. Вот точный скрипт, который я запустил:
import Image
import ImageTk
i = Image.open("image.png")
photo = ImageTk.PhotoImage(i)
Теперь вместо "Ошибка шины" это мой трассировщик.
Traceback (most recent call last):
File "imageTest.py", line 5, in <module>
photo = ImageTk.PhotoImage(i)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/ImageTk.py", line 113, in __init__
self.__photo = apply(Tkinter.PhotoImage, (), kw)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk/Tkinter.py", line 3285, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk/Tkinter.py", line 3226, in __init__
raise RuntimeError, 'Too early to create image'
RuntimeError: Too early to create image
Exception AttributeError: "PhotoImage instance has no attribute '_PhotoImage__photo'" in <bound method PhotoImage.__del__ of <ImageTk.PhotoImage instance at 0x3c7a30>> ignored