PhotoImage нет такого файла или ошибка каталога

1

Так что в основном, я пытаюсь узнать tkinter, но гаджет PhotoImage не будет работать.

Мой код:

import tkinter as tk

root = tk.Tk()
logo = tk.PhotoImage(file ="monky.gif")

def test():
    print("Hello World")

text = tk.Label(root, text = "Hello World")
text.pack()

Я также пробовал:

logo = tk.PhotoImage(file ="/Users/MinecraftMaster/Desktop/Python/Tests/monky.gif")

Сообщение об ошибке:

Traceback (most recent call last):
  File "/Users/MinecraftMaster/Desktop/Python/Tests/Tkinter Test.py", line 4, in <module>
    logo = tk.PhotoImage(file ="monky.gif")
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py", line 3539, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py", line 3495, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't open "monky.gif": no such file or directory

Это изображение моего каталога:

https://imgur.com/HwJz7Eo

Изменение: друг помог мне решить эту проблему. Для кого-либо еще с этой проблемой просто поместите каталог в переменную, а затем вызовите ее. Спасибо всем, кто пытался помочь

  • 0
    На скриншоте показано изображение в папке с именем Tkinter Test . Ваш код пытается загрузить его из папки с именем Tests . Конечно, это не удается ...
  • 0
    Спасибо за попытку, но это все еще не решает проблему. Я думаю, что Mac не поддерживает этот способ ссылки на каталог, не знаю ...
Показать ещё 6 комментариев
Теги:
tkinter

3 ответа

0

@Omaro_IB. Ниже изображен сценарий, который я использовал, и результат. Изображение 174551

Вы должны убедиться, monky.gif файл monky.gif находится в том же каталоге, что и ваш файл сценария python, например monky.py.

Чтобы изображение появилось, вам нужны параметры image=logo и tk.Label compound='top' в методе tk.Label чтобы сообщить tkinter отображать изображение и текст вместе, так что изображение находится вверху.

Надеюсь, что это помогает.

Обновление: Как проверить файл monky.gif в том же каталоге, что и ваш файл сценария python.

Откройте терминал, например, нажмите Ctr + Alt + T Если ваши изображения и файлы python находятся в папке Home_folder/Desktop/test_folders, введите команду cd в терминале, чтобы перейти в вашу папку (например, каталог). Затем используйте команду ls чтобы перечислять ваши файлы в этой папке. Эти команды помогут вам увидеть, что файлы python (например, monky.py) и monky.gif находятся в одном каталоге. Если эти файлы находятся не в той же папке, что и изображение не отображается.

$ cd Desktop/test_folder/
$ ls
monky.gif  monky.py
  • 0
    Что вы подразумеваете под командой ls извините, я только начинаю
  • 0
    В linux команда ls выведет список элементов в каталоге, в котором она была введена. Другая команда, которую вам нужно знать, это cd для смены каталога. Чтобы выполнить эти команды, вам нужно открыть терминал Linux. В Ubuntu вы можете нажать Ctrl + Alt + T вызвать терминал. Смотрите обновление выше.
Показать ещё 5 комментариев
-1

Если вы открываете файл, например:

logo = tk.PhotoImage(file ="monky.gif")

то файл monky.gif должен находиться в папке, в которой программа (которая будет читать этот файл). например:

monky.gif путь: D: /foo/bar/monky.gif
путь к программе: D: /foo/bar/example.py


Вы попытались предоставить полный путь:

logo = tk.PhotoImage(file ="/Users/MinecraftMaster/Desktop/Python/Tests/monky.gif")

Но это не полный путь.

Полный путь:

C:/Users/MinecraftMaster/Desktop/Python/Tests/monky.gif

т.е. также добавить имя диска с двоеточием до пути. Поэтому попробуйте:

logo = tk.PhotoImage(file ="C:/Users/MinecraftMaster/Desktop/Python/Tests/monky.gif")
-1

Вы не разместили виджет, который содержит фотографию как ярлык, а затем он должен появиться.

import tkinter as tk

root = tk.Tk()
photo = tk.PhotoImage(file = "monkey.gif")
label = tk.Label(image = photo).pack()
def test():
    print("Hello World")

text = tk.Label(root, text = "Hello World")
text.pack()

Как выглядит окно
https://gyazo.com/8ce068a49c99a8a7f53f64cd5024a48f

  • 2
    проблема не в виджете / синтаксисе, а в том, что компьютер не может найти фактический файл. Если вы посмотрите на ошибку, она говорит: не удалось открыть "monky.gif": нет такого файла или каталога

Ещё вопросы

Сообщество Overcoder
Наверх
Меню