#python #tkinter #python-imaging-library
#python #tkinter #python-imaging-library
Вопрос:
Я использую PIL и TKinter для открытия изображения. Я не понимаю, почему я получаю эту ошибку
import os
import random
from PIL import Image
import time
from tkinter import *
root = Tk()
def timer(mins):
time.sleep(mins * 60)
def anmuViewer():
random_pic = (random.choice(os.listdir("D:/de_clutter/memez/anmu")))
openPic = Image.open('D:/de_clutter/memez/anmu/' random_pic)
openPic.show()
timer(3)
start_btn = Button(root, text = "Start", command = anmuViewer)
start_btn.pack()
root.mainloop()
что должно произойти, так это то, что должно появиться окно tkinter только с кнопкой «пуск». Когда я нажимаю эту кнопку, должно появиться новое окно с изображением. вместо этого я получаю эту ошибку
line 17, in anmuViewer
openPic = Image.open('D:/de_clutter/memez/anmu/' random_pic)
AttributeError: type object 'Image' has no attribute 'open'
Комментарии:
1. «tkinter. Изображение «перезаписывает» файл. Изображение» в пространстве имен вашего модуля. Избегайте импорта с
*
помощью .2. Вот почему импорт подстановочных знаков не должен использоваться.
Ответ №1:
Как сказал Майкл Бутчер,
«tkinter.Изображение «перезаписывает» файл.Изображение» в пространстве имен вашего модуля. Избегайте импорта с
*
Но если вы должны использовать импорт с подстановочным знаком, импорт tkinter перед PIL должен решить вашу проблему
from tkinter import *
import os
import random
from PIL import Image
import time