¿Cómo mostrar una imagen desde la web?

He escrito este sencillo script en python:

import gtk window = gtk.Window() window.set_size_request(800, 700) window.show() gtk.main() 

Ahora quiero cargar en esta ventana una imagen de la web (y no de mi PC) como esta:

http://sofes.miximages.com/python/planet_x.jpg

Cómo puedo hacer eso ?

PS no quiero descargar la imagen! Solo quiero cargar la imagen desde la URL.

Esto descarga la imagen de una url, pero escribe los datos en un gtk.gdk.Pixbuf en lugar de en un archivo:

 import pygtk pygtk.require('2.0') import gtk import urllib2 class MainWin: def destroy(self, widget, data=None): print "destroy signal occurred" gtk.main_quit() def __init__(self): self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.connect("destroy", self.destroy) self.window.set_border_width(10) self.image=gtk.Image() response=urllib2.urlopen( 'http://sofes.miximages.com/python/planet_x.jpg') loader=gtk.gdk.PixbufLoader() loader.write(response.read()) loader.close() self.image.set_from_pixbuf(loader.get_pixbuf()) # This does the same thing, but by saving to a file # fname='/tmp/planet_x.jpg' # with open(fname,'w') as f: # f.write(response.read()) # self.image.set_from_file(fname) self.window.add(self.image) self.image.show() self.window.show() def main(self): gtk.main() if __name__ == "__main__": MainWin().main() 
  1. Descarga la imagen. Google sobre cómo descargar archivos con python, hay bibliotecas fáciles de usar para eso.

  2. Carga la imagen en un widget. Mira cómo mostrar una imagen en GTK.

Lo siento por la falta de detalles, pero la respuesta sería larga y aún así sería mejor leer sobre esos temas en otro lugar.

¡Espero eso ayude!

Aquí hay un script simple usando WebKit:

 #!/usr/bin/env python import gtk import webkit window = gtk.Window() window.set_size_request(800, 700) webview = webkit.WebView() window.add(webview) window.show_all() webview.load_uri('http://sofes.miximages.com/python/planet_x.jpg') gtk.main() 

Tenga en cuenta, sin embargo, que de hecho esto descarga la imagen.