При использовании Tkinter ошибка: TclError: изображение "pyimage8" не существует - PullRequest
0 голосов
/ 25 апреля 2018

Я получаю сообщение об ошибке, TclError: изображение "pyimage8" не существует. Это странно, так как число увеличивается каждый раз, когда я запускаю его?

Я использую python, не знаю, влияет ли это на что-нибудь. Вот мой код

#import the modules we need, for creating a GUI
import Tkinter as tk
from PIL import ImageTk, Image

homescreenImage = PhotoImage(file="Homescreen.gif") 

#create a GUI window.
root = Tk()
#set the title.
root.title("Welcome to the Pit!")
#set the size.
root.geometry("1100x700")

homescreenFrame = tk.Frame(root, width=1100, height = 700,)
homescreenFrame.pack()
homescreenLabel = tk.Label(homescreenFrame, image=homescreenImage)
homescreenLabel.pack()


#start the GUI
root.mainloop()

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Ниже могут быть ошибки:

1) Укажите полный путь к имени файла, например: "/home/user/Homescreen.gif"

2) Если вы используете windowsи вышеупомянутое не работает: используйте «\\ C: \\ home \\ Homescreen.gif» (это потому, что окна перепутаны)

3) Если это также не работает, убедитесь, чточто каталог вашей программы на Python совпадает с каталогом изображения.

4) Кроме того, создавайте фотоизображение только после создания корневого окна.

5) По какой-то причинево время работы в отладчике, если в каких-либо предыдущих выполнениях были выданы ошибки, я получаю ошибку «pyimage не существует».Однако, если я перезапущу отладчик (или ни один из ранее выполненных сценариев не выдал ошибки), то программа будет работать нормально.

6) Кроме того, не импортируйте PIL, это не требуется.

Попробуйте все вышеперечисленное, если это не сработает, дайте мне знать.Надеюсь, это поможет.

0 голосов
/ 22 января 2019

Я обнаружил, что мой скрипт запускается один раз, а затем выдает ошибку при последующих запусках.Если я перезапущу консоль, она снова запустится.Я решил проблему, используя следующий код в начале моего скрипта:

import sys
if "Tkinter" not in sys.modules:
    from Tkinter import *

Теперь он работает каждый раз.

0 голосов
/ 26 апреля 2018

Если вы import Tkinter as tk, вы должны использовать псевдоним tk при вызове tk, например. root = tk.Tk(). В противном случае Python не найдет Tk.

Для этого вам не нужно импортировать PIL.

Вы не можете создать фотоизображение перед созданием Tk.

Попробуйте это:

import Tkinter as tk

root = tk.Tk()
root.title("Welcome to the Pit!")
root.geometry("1100x700")

homescreenImage = tk.PhotoImage(file="Homescreen.gif") 
homescreenFrame = tk.Frame(root, width=1100, height = 700,)
homescreenFrame.pack()
homescreenLabel = tk.Label(homescreenFrame, image=homescreenImage)
homescreenLabel.pack()

root.mainloop()

Будьте добры и вставьте все сообщение об ошибке в ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...