对于当前目录中的图像文件,“IOError No such file or directory”

时间:2011-10-30 05:04:32

标签: python tkinter notepad++ python-imaging-library python-2.7

我正在使用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 个答案:

答案 0 :(得分:2)

实际上,你的评论是正确的:Notepad ++似乎从它自己的目录中启动文件。

如果你还打算使用Notepad ++,你可以在这里找到问题的解决方案:http://damienlearnsperl.blogspot.com/2009/01/launch-your-perl-script-from-notepad.html(查看Lee的评论)

答案 1 :(得分:0)

我尝试了您的确切代码,但效果非常好。

我认为你在一个奇怪的目录中 (例如需要特殊权限的Program Files)

为什么不尝试通过任务管理器结束explorer.exe,
而不是再次运行你的代码?

答案 2 :(得分:0)

我是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)(你需要导入操作系统,但在我的代码中我已经完成了。)从运行我的代码的结果shell窗口中我输入 os.getcwd()

这将为您提供当前的工作目录。

2)确保您的文件保存在此目录中;用你的Python脚本。

3)将运行目录键入您需要使用它的任何位置的括号中,然后在结尾处放置斜杠并等待。

4)使用箭头键向下显示一个小小部件,找到应该保存在路径中的图像。 然后选择它时按enter键,这是您需要使用的路径,

5)希望它应该有效。我发现Python并不需要结束。