Я не могу запустить свою программу Python. У меня проблема, я не могу открыть файл .gif и не могу понять как!
Я продолжаю получать длинное сообщение об ошибке:
"RuntimeError: Too early to create image"
Я переместил файлы gif в тот же файл проекта, что и код, и попытался поискать в Интернете, но все используют разные пакеты, и я просто не могу найти способ обойти это. У меня также открыты гифки на pycharm.
Вот мой код:
import random
from tkinter import *
sign = random.randint(0, 1)
if (sign == 1):
photo = PhotoImage(file = "X.gif")
else:
photo = PhotoImage(file = "O.gif")
Моя общая цель - показать изображение, похожее на готовую игру в крестики-нолики, со случайно расположенными крестиками и ноликами, и не должно быть какого-то определенного порядка, например, 3 в ряд. Вот домашнее задание:
Display a frame that contains nine labels. A label may display an image icon for X or an image icon for O, as shown in Figure 12.27c. What to display is randomly decided.
Use the
Math.random()method to generate an integer 0 or 1, which corresponds to displaying an X or O image icon. These images are in the files x.gif and o.gif.
Чтобы использовать PhotoImage, вам, возможно, придется сначала создать главное окно Tk(). И Too early to create image может означает, что вы используете PhotoImage перед созданием Tk()
Если у вас ошибка “no such file or directory”, попробуйте "/full/path/to/image/X.gif"






Я вижу из кода, который вы используете PhotoImage перед созданием главного окна, дает вам Runtime error, и в ошибке четко сказано, что «Слишком рано создавать имидж» означает, что изображение невозможно создать, если нет активного окна Tk.
Причина, по которой некоторые люди предпочитают использовать другой модуль, заключается в том, что он дает вам больше гибкости для изменения размера, изменения формы, инвертирования и многого другого. (Кстати это может быть модуль Подушкаfrom PIL import Image, ImageTkКак использовать PIL в Tkinter ).
if-else.import random
from tkinter import *
sign = random.choice( ["X.gif", "O.gif"] )
print(sign,"photo has been selected")
root = Tk()
Photo = PhotoImage(file=sign)
display_photo = Label(root, image=Photo)
display_photo.pack()
mainloop()
вы упомянули два разных сообщения об ошибках. Какая у тебя проблема?