Как заставить PIL работать, когда он построен на mingw / cygwin? - PullRequest
3 голосов
/ 19 декабря 2008

Я пытаюсь собрать PIL 1.1.6 против cygwin или mingw, пока запускается установка Windows на python. Когда я делаю, либо сборка работает, но я получаю следующую ошибку при попытке сохранить файлы.

$ python25
Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from PIL.Image import open
>>> im = open('test.gif')
>>> im.save('output1.gif')
Traceback (most recent call last):
  File "", line 1, in 
  File "c:\Python25\Lib\site-packages\PIL\Image.py", line 1405, in save
    save_handler(self, fp, filename)
  File "c:\Python25\Lib\site-packages\PIL\GifImagePlugin.py", line 291, in _save

    ImageFile._save(imOut, fp, [("gif", (0,0)+im.size, 0, rawmode)])
  File "c:\Python25\Lib\site-packages\PIL\ImageFile.py", line 491, in _save
    s = e.encode_to_file(fh, bufsize)
IOError: [Errno 0] Error
>>>

Я не компилирую с библиотеками для поддержки jpeg или zip, но я не думаю, что это должно быть здесь уместно.

Кажущаяся ошибочная строка - запись в encode_to_file в encode.c.

Я подозреваю, что это происходит из-за того, что дескриптор файла передается из Python (который был собран под Visual Studio 2003) в _imaging.pyd, но дескрипторы файлов не совпадают, потому что в Windows дескрипторы файлов и абстракция на верх операционной системы. Кто-нибудь знает что-нибудь об этом?

1 Ответ

1 голос
/ 23 января 2009

Насколько я могу судить по беглому поиску в Google, вам нужно перекомпилировать библиотеки DLL после сборки PIL, чтобы он правильно работал на Cygwin.

Рекомендации:

...