在mingw / cygwin上构建时如何让PIL工作?

时间:2008-12-19 11:31:13

标签: python windows cygwin python-imaging-library

我正在尝试针对cygwin或mingw构建PIL 1.1.6,同时针对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.c中的encode_to_file中写入。

我怀疑这是因为文件描述符从Python(在visual studio 2003下构建)传递到_imaging.pyd,但是文件描述符不匹配,因为在Windows文件描述符上是抽象的操作系统的顶部。有谁知道这个?

1 个答案:

答案 0 :(得分:1)

据我粗略的谷歌搜索,你需要在构建PIL后重新绑定DLL,以便它在Cygwin上正常工作。

参考文献: