Wie lese ich Bilddaten von einer URL in Python?

| | | | | | |

Was ich versuche, ist ziemlich einfach, wenn wir es mit einer lokalen Datei zu tun haben, aber das Problem tritt auf, wenn ich versuche, dies mit einer Remote-URL zu tun.

Im Grunde bin ich versuchen, ein PIL-Bildobjekt aus einer Datei zu erstellen, die von einer URL abgerufen wird. Sicher, ich könnte immer einfach die URL abrufen und in einer temporären Datei speichern und sie dann in einem Bildobjekt öffnen, aber das fühlt sich sehr ineffizient an.

Hier ist, was ich habe:

Image.open(urlopen(url)) 

Es blättert ab und beschwert sich, dass seek( ) ist nicht verfügbar, also habe ich Folgendes versucht:

Image.open(urlopen(url).read()) 

Aber auch das hat nicht funktioniert. Gibt es einen besseren Weg, dies zu tun, oder ist das Schreiben in eine temporäre Datei die akzeptierte Methode, um so etwas zu tun?