2014-07-17 20 views
5

我装枕头做抱枕(PIL)不支持PNG文件..如何安装ZLIB压缩库?

pip install Pillow 

,我没有安装PIL。我装枕头后,它说:

ZLIB (PNG/ZIP) support not available 

,当我尝试创建一个PNG图像的缩略图,它给了我一个错误说

IOError at /createThumbnail/ 
decoder zip not available 

我读了枕头文档(http://pillow.readthedocs.org/en/latest/handbook/image-file-formats.html#png)和它说为了获得PNG支持,我需要“在构建Python图像库之前构建并安装ZLIB压缩库。有关详细信息,请参阅发行版自述文件”。我看过原著PIL README(http://pillow.readthedocs.org/en/latest/original-readme.html),它说安装

sudo apt-get install zlib1g-dev 

我这样做和枕头仍然不支持PNG文件。我甚至尝试重新安装枕头,但是这也不起作用。任何想法如何让枕头支持PNG文件?

编辑: 我从这里下载的zlib: http://zlib.net/

,然后按照说明在这里: http://petio.org/tools/zlib.html

我基本上只是提取下载的文件,然后从目录中运行这些代码:

$ ./configure -s --prefix=/usr 
$ make 
$ sudo su 
make install 

然后我卸载并重新安装枕头,它现在支持PNG,但是,我仍然得到完全相同的错误消息(解码器压缩不可用)..任何想法为什么?

回答

4

Read me

构建库。我们建议您进行就地构建, 并在安装之前运行自检。

$ cd Imaging-1.1.7 
    $ python setup.py build_ext -i 
    $ python selftest.py 

在生成过程中,setup.py将显示一个总结 报告,列出它找到了外部元件。自我 测试将显示一个类似的报告,什么在实际构建文件中找到的外部元件 测试:

---------------------------------------------------------------- 
    PIL 1.1.7 SETUP SUMMARY 
    ---------------------------------------------------------------- 
    *** TKINTER support not available (Tcl/Tk 8.5 libraries needed) 
    --- JPEG support available 
    --- ZLIB (PNG/ZIP) support available 
    --- FREETYPE support available 
    ---------------------------------------------------------------- 

确保您需要的可选组件也包括在内。

如果构建脚本找不到给定的组件,您可以编辑 setup.py文件并设置相应的ROOT变量。详情请参阅 查看文件中的说明。

如果构建脚本发现的组成部分,但测试不能 识别它,试图重建所有模块:

$ python setup.py clean 
    $ python setup.py build_ext -i 
+0

啊,完美,谢谢。我进入了Imaging-1.7.7,运行了你提到的两个命令,在运行它之后,总结中提到FREETYPE和TKINTER支持不可用。我忍着下面的自述文件,做了$ python setup.py安装,并安装了它,然后停止给我这个错误。 (我不确定它为什么说它不支持其他文件 - 这可能是因为我使用的是一个非常旧的Lubuntu版本,我甚至无法使用apt-get进行任何操作,因为版本已过时 - 但安装Imaging-1.7.7确实解决了问题 – user2719875

+0

链接是404错误。 – User

+0

尝试[this](https://pillow.readthedocs.org/en/2.8.1/original-readme.html) –

3

这是真的帮了我对OS X埃尔卡皮坦当我运行我的演奏:

pip install -I --no-cache-dir pillow --global-option=build_ext --global-option="-I$(xcrun --show-sdk-path)/usr/include"