Ich weiß, es ist eine alte Frage, aber hier ist, wie ich es in Ubuntu repariert, falls jemand das gleiche Problem hat und nicht imagemagick installieren will (was die Grundursache des Problems sowieso nicht behebt).
Der Standard-Viewer auf Ubuntu kann im Terminal mit dem Befehl „EOG“ gestartet werden. Pillow sucht standardmäßig nur nach den Befehlen "xv" und "display", letzteres wird von imagemagick bereitgestellt. Wenn Sie imagemagick installieren, öffnet das Aufrufen von "display" das Bild tatsächlich. Aber warum nicht den Viewer verwenden, den wir bereits haben?
Der Python-Code zum Öffnen des Viewers finden Sie in lib/python3.4/site-packages/PIL/ImageShow.py (oder dem Äquivalent Ihrer Python-Installation). Blättern Sie nach unten auf unter Zeile # 155 und finden Sie den Codeblock Spruch:
class DisplayViewer(UnixViewer):
def get_command_ex(self, file, **options):
command = executable = "display"
return command, executable
if which("display"):
register(DisplayViewer)
Kopieren Sie, dass Block und fügen Sie ihn direkt unter, die Änderung der „display“ Befehl Ubuntus „EOG“ Befehl:
class DisplayViewer(UnixViewer):
def get_command_ex(self, file, **options):
command = executable = "eog"
return command, executable
if which("eog"):
register(DisplayViewer)
Nach dem Speichern von ImageShow.py sollte Pillow Bilder() im Standard-Viewer korrekt anzeigen.
Was ist der Fehler/Effekt? –
Was ist Ihr Betriebssystem und Python-Version? Sehen Sie Fehlermeldungen? – piokuc
Wahrscheinlich liegt dies daran, dass Ihnen in Ihrem Betriebssystem ein Standard-Image-Viewer fehlt, vorausgesetzt, Sie verwenden Linux. PIL hängt stark davon ab, ob Ihr Betriebssystem Ihr Bild "rendert". Sehen Sie, ob dies eine bessere Vorgehensweise ist, wenn Sie nur ein Bild anzeigen und auf die Bilddaten zugreifen möchten: http://stackoverflow.com/questions/11390596/how-to-display-image-in-pygame – Torxed