2015-08-10 4 views
1

Следующий код заставляет Python «неожиданно завершать работу» при попытке создать экземпляр PhotoImage (он печатает 1 и завершает работу). Я нахожусь в OS X 10.9.5, используя Python 2.7.10, ActiveTcl 8.6.4 из ActiveState, запуская сценарий из IDLE с помощью модуля Run/Run. Любая подсказка? Я совершенно новый для Python и всех GUI модулейPython завершает работу в PhotoImage

import numpy as np 
import collections 
import math 
import Tkinter 
from PIL import Image, ImageTk 

# A root window for displaying objects 
root = Tkinter.Tk() 

# Convert the Image object into a TkPhoto object 
im = Image.open('samples.png') 
print 1 
imgtk = ImageTk.PhotoImage(image=im) 
print 2 
# Put it in the display window 
Tkinter.Label(root, image=imgtk).pack() 
root.mainloop() 
+1

Какое сообщение вы видите –

+0

Нет сообщений от Python; OS X говорит, что «Python неожиданно завершает работу». – Eduardo

ответ

-1

вы пытались что-то ссылка это:

import Tkinter 
from PIL import Image, ImageTk 

root = Tkinter.Tk() 
imgtk = ImageTk.PhotoImage(file='test.jpg') 
Tkinter.Label(root, image=imgtk).pack() 
root.mainloop() 
+0

Я просто попробовал. Тот же результат. – Eduardo

+0

Я только что проверил ваш код с измененной линией imgtk, чтобы отразить ответ выше. Он работал на моем компьютере с помощью python 2.7. Кажется, что линия с image.open не нужна. –

+1

Это не работает для меня. Какой PIL вы используете? Как вы его установили? – Eduardo

0

ImageTk.PhotoImage, кажется, сломан, по крайней мере, на некоторых системах, включая Python 2.7 на OS X Sierra. Вместо этого вы можете использовать Tkinter.PhotoImage, но он принимает только необработанный файл в качестве аргумента, который является жалким.

Смежные вопросы