PIL geht nicht mehr
Verfasst: Montag 9. Juni 2003, 23:48
Habe ich schon bei dzug gestellt aber dort fand wohl keiner eine Antwort.
Für Tips wäre ich echt dankbar!
Bei mir ist gestern ein merkwürdiges Problem mit Zope-2.4.1-linux2-x86 und der Python Image Library aufgetreten.
Ich habe folgenden Code geschrieben, um ein Bild dynamisch zu erzeugen (unrelevante Teile gekürzt):
Dieser hat auch zunächst gut funktioniert. Aber auf einmal (ich hatte glaub' ich mehrfach hinterander auf das Bild geklickt -> es werden Punkte hinzugefügt) erhielt ich eine Fehlermeldung des Browsers: "The image ... cannot be displayed because it contains errors". Tatsächlich ist das Bild bur noch 33 Bytes groß und enthält wohl noch Teile eines PNG-Headers.
Ändere ich den Code (diese Version war meine erste -- sie erschien mir äußerst failsafe und funktionierte ebenfalls):
erhalte ich eine Exception:
*Das ich auch ungewöhnlich, da man mit der PIL normalerweise durchaus .jpegs speichern kann.
Ich habe Zope neugestartet (mehrfach) und kontrolliert, daß auch keine Prozesse "überlebt" hatten. Die .pyc Dateien meines Produkts und der PIL gelöscht, um Neukompilierung zu veranlassen. Außerdem habe ich diesen Fehler mit IE und Mozilla reproduzieren können auch bei neugestarteten Client-Rechner und geleertem Cache.
Habt ihr eine Idee?
Mir ist unverständlich wie so ein Fehler auftreten kann
cu beyond
Für Tips wäre ich echt dankbar!
Bei mir ist gestern ein merkwürdiges Problem mit Zope-2.4.1-linux2-x86 und der Python Image Library aufgetreten.
Ich habe folgenden Code geschrieben, um ein Bild dynamisch zu erzeugen (unrelevante Teile gekürzt):
Code: Alles auswählen
def getPic(self, REQUEST=None):
""" bla """
img= Image.new('RGB', (400,400), (255,200,0))
draw = ImageDraw.Draw(img)
for coordR in self.coords:
draw.point(coordR, fill=128)
RESPONSE= REQUEST.RESPONSE
img.save(RESPONSE, 'PNG') # Suddenly broken ???
return RESPONSE
Ändere ich den Code (diese Version war meine erste -- sie erschien mir äußerst failsafe und funktionierte ebenfalls):
Code: Alles auswählen
def getPic(self, REQUEST=None):
""" bla """
img= Image.new('RGB', (400,400), (255,200,0))
draw = ImageDraw.Draw(img)
for coordR in self.coords:
draw.point(coordR, fill=128)
RESPONSE= REQUEST.RESPONSE
img.save('/tmp/h.jpg') # .png -> gleicher Effekt
RESPONSE.write(open('/tmp/h.jpg').read())
return RESPONSE
Code: Alles auswählen
*Error Type: AttributeError*
*Error Value: 'ImageFile' module has no attribute '_save'
Traceback (innermost last):
File /opt/Zope-2.4.1-linux2-x86/lib/python/ZPublisher/Publish.py, line 223, in publish_module
File /opt/Zope-2.4.1-linux2-x86/lib/python/ZPublisher/Publish.py, line 187, in publish
File /opt/Zope-2.4.1-linux2-x86/lib/python/Zope/__init__.py, line 226, in zpublisher_exception_hook
(Object: h3)
File /opt/Zope-2.4.1-linux2-x86/lib/python/ZPublisher/Publish.py, line 171, in publish
File /opt/Zope-2.4.1-linux2-x86/lib/python/ZPublisher/mapply.py, line 160, in mapply
(Object: getPic)
File /opt/Zope-2.4.1-linux2-x86/lib/python/ZPublisher/Publish.py, line 112, in call_object
(Object: getPic)
File /opt/Zope-2.4.1-linux2-x86/lib/python/Products/Hauptachsen/HauptachsenMain.py, line 96, in getPic
(Object: h3)
File /opt/Zope-2.4.1-linux2-x86/lib/python2.1/site-packages/PIL/Image.py, line 667, in save
File /opt/Zope-2.4.1-linux2-x86/lib/python2.1/site-packages/PIL/JpegImagePlugin.py, line 307, in _save
AttributeError: (see above)
Ich habe Zope neugestartet (mehrfach) und kontrolliert, daß auch keine Prozesse "überlebt" hatten. Die .pyc Dateien meines Produkts und der PIL gelöscht, um Neukompilierung zu veranlassen. Außerdem habe ich diesen Fehler mit IE und Mozilla reproduzieren können auch bei neugestarteten Client-Rechner und geleertem Cache.
Habt ihr eine Idee?
Mir ist unverständlich wie so ein Fehler auftreten kann
cu beyond