«IOError Нет такого файла или каталога» для файла изображения, который находится в текущем каталоге - PullRequest
0 голосов
/ 30 октября 2011

Я использую Python Imaging Library и Tkinter.В настоящее время я пытаюсь отобразить изображение в качестве метки, и я получаю указанное выше исключение.Мой источник 35 строк:

from PIL import Image, ImageTk
from Tkinter import Tk, Frame, Label

class Example(Frame):

    def __init__(self, parent):
        Frame.__init__(self, parent)

        self.parent = parent
        self.initUI()

    def initUI(self):
        self.parent.title("Label")

        self.img = Image.open("diesl.jpg")
        diesl = ImageTk.PhotoImage(self.img)
        label = Label(self, image=diesl)

        label.image = diesl
        label.pack()

        self.pack()

    def setGeometry(self):
        w, h = self.img.size
        self.parent.geometry(("%dx%d+300+300") % (w, h))

def main():
    root = Tk()
    ex = Example(root)
    ex.setGeometry()
    root.mainloop()

if __name__ == '__main__':
    main()

Ответы [ 3 ]

2 голосов
/ 31 октября 2011

На самом деле, вы правы в своем комментарии: Notepad ++, похоже, запускает файлы из своего собственного каталога.

Вы можете найти решение вашей проблемы здесь: http://damienlearnsperl.blogspot.com/2009/01/launch-your-perl-script-from-notepad.html (проверьте комментарий Ли), если вы все еще собираетесь использовать Блокнот ++

0 голосов
/ 28 октября 2017

Я новичок в Python, но мой метод работает для меня. Вот код:

from Tkinter import *
from PIL import Image,ImageTk
import os
import platform
import webbrowser

sys = platform.system()


def setup_window():
    global window
    window = Tk()
    window.geometry("300x150")
    window.title("Computer Utility GUI")


def style_window():
    path = "/home/pi/Desktop/tool icon"
    img = ImageTk.PhotoImage(Image.open(path))
    label = Label(window, image = img)
    label.grid(row=0,column=0,sticky=W)

setup_window()
style_window()

window.mainloop()

Как я получил его на работу:

1) (Вам нужно импортировать os, но в моем коде я уже сделал это.) Из полученного окна оболочки при запуске моего кода я набрал os.getcwd ()

Это дает вам текущий рабочий каталог.

2) Убедитесь, что ваш файл сохранен в этом каталоге; с вашим скриптом Python.

3) Введите работающий каталог в круглые скобки, где бы вам ни понадобилось его использовать, затем поставьте косую черту в конце и подождите.

4) Должен появиться маленький виджет с помощью клавиш со стрелками, чтобы найти изображение, которое должно быть сохранено в пути. Затем при выборе нажмите Enter, и это путь, который вам нужно использовать,

5) Надеюсь, это должно сработать. Я обнаружил, что Python не требует окончания.

0 голосов
/ 30 октября 2011

Я попробовал ваш точный код, и он отлично работал.

Я думаю, что вы находитесь в странном каталоге
(например, Program Files, для которых требуются специальные разрешения)

Почему бы вам не попробовать завершить explorer.exe через диспетчер задач,
чем запустить ваш код снова?

...