Python/gtk gtk.gdk.pixbuf_new_from_file()总是失败

Python/gtk gtk.gdk.pixbuf_new_from_file()总是失败,python,pygtk,Python,Pygtk,嗨,我正在尝试在Python2.7.3下使用PythonGTK脚本;在Linux上(在X11下),它需要从磁盘将图像加载到pixbufs中 但是,python返回glib.GError:“无法识别图像文件格式”,无论我尝试打开哪种类型的文件; 例如:with:pixbuf=gtk.gdk.pixbuf_new_from_文件(文件名) 我可以做一个gtk.gdk.pixbuf_get_formats(),在返回的字典列表中,我尝试加载的格式是.png、.ppm、.jpg 但是,当我尝试使用gtk

嗨,我正在尝试在Python2.7.3下使用PythonGTK脚本;在Linux上(在X11下),它需要从磁盘将图像加载到pixbufs中

但是,python返回glib.GError:“无法识别图像文件格式”,无论我尝试打开哪种类型的文件; 例如:with:pixbuf=gtk.gdk.pixbuf_new_from_文件(文件名)

我可以做一个gtk.gdk.pixbuf_get_formats(),在返回的字典列表中,我尝试加载的格式是.png、.ppm、.jpg

但是,当我尝试使用gtk.gdk.pixbuf_get_file_info(文件名)时,它不会返回任何结果

其他基于GTK的程序,如Gimp,可以很好地加载这些相同的图像;gtk脚本不从磁盘加载图标,但可以绘制按钮,等等。工作正常

如何查找故障原因

我是否缺少某种mime类型的文件

是否有使用其他gtk函数调用的替代路径可以以另一种方式完成加载?

这对我很有用:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import gtk

def win_with_image():
    pixbuf = gtk.gdk.pixbuf_new_from_file("photo.png")
    print pixbuf
    win = gtk.Window(gtk.WINDOW_TOPLEVEL)
    image = gtk.Image()
    image.set_from_pixbuf(pixbuf)
    win.add(image)
    win.connect("destroy", gtk.main_quit)
    win.show_all()

if __name__ == '__main__':
    win_with_image()
    gtk.main()
如果这对你不起作用,试着:

  • 启动google并键入错误,然后选择第二个链接(),通常这几乎总是有帮助的
  • 重新安装libglib
  • 安装gtk(可能是一些图形库-libpng、libjpeg、f.e.)
  • 重新安装python/gtk包
  • 修复损坏的包存储库
  • 更改文件权限