如何安装 Python 图像库(PIL)?

如何安装 Python 图像库(PIL)?

如何在 Ubuntu 上安装 Python 图像库(PIL)?

我尝试过

sudo apt-get install python-imaging

但是现在当我运行 python selftest.py (我从某个地方得到的脚本)时http://pythonware.com/products/pil/网站)我收到(以及其他警告信息):

...
*** JPEG support not installed
*** ZLIB (PNG/ZIP) support not installed
...
*** 1 tests of 57 failed.

我是否以某种方式弄乱了 PIL —— 我该如何修复?

也许 PIL 没问题,但“selftest.py”并不是真正用于检查 PIL 是否正确安装的正确程序——我还能怎样判断 PIL 是否正确安装?

(我正在使用 Ubuntu 12.04 LTS“Precise Pangolin”)。

(我最终想要做的是向一些 python 代码添加一个 2D 条形码生成器,我发现所有用 python 编写的 2D 条形码生成器似乎都使用了 PIL)。

答案1

上述解决方案在 Ubuntu 12.10 上对我来说不起作用,因为存储库中没有 libjpeg。

最终对我有用的是:

sudo apt-get build-dep python-imaging
sudo apt-get install libjpeg62 libjpeg62-dev

如果您收到错误“您必须在 sources.list 中放置一些‘源’ URI”,请确保您的 /etc/apt/sources.list 具有与您的 deb 条目匹配的 deb-src 条目。

然后,您必须将文件从服务器上的实际位置符号链接到 PIL 期望它们的位置。

32 位版本

sudo ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib/libz.so
sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
sudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib/libfreetype.so

64 位版本

sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/libz.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/libfreetype.so

最后,pip install PIL

成功!

在此处输入图片描述


2014 年 9 月更新

Pillow 是 PIL 的一个更现代的分支。

#jpeg support
sudo apt-get install libjpeg-dev
#tiff support
sudo apt-get install libtiff-dev
#freetype support
sudo apt-get install libfreetype6-dev
#openjpeg200support (needed to compile from source)
wget http://downloads.sourceforge.net/project/openjpeg.mirror/2.0.1/openjpeg-2.0.1.tar.gz
tar xzvf openjpeg-2.0.1.tar.gz
cd openjpeg-2.0.1/
sudo apt-get install cmake
cmake .
sudo make install
#install pillow
pip install pillow

答案2

我遇到了类似的事情,我是这样解决的

sudo apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

并尝试通过 安装pip install PIL

更多详情pip可参阅这里。简而言之,这是一种方便的(并且正在成为标准)安装 Python 库的方法。

如果继续失败,则可能是由于 PIL 在不同的路径中搜索这些库。

事实证明,APT 安装将库放在/usr/lib/x86_64-linux-gnu并且 PIL 会搜索它们/usr/lib/。因此您必须创建符号链接以便 PIL 能够看到它们。

尝试查看 libjpeg 和 libz 库是否存在/usr/lib/x86_64-linux-gnu并以此方式创建符号链接

sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 /lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so.6 /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so.62 /usr/lib/

来源: http://jj.isgeek.net/2011/09/install-pil-with-jpeg-support-on-ubuntu-oneiric-64bits/

答案3

我只想补充一点,这 pip install pil不再起作用,至少在我的计算机上,你必须这样做

pip install PIL --allow-external PIL --allow-unverified PIL

答案4

sudo apt-get install python-imaging现在安装 Pillow 而不是 PIL。至于selftest.py,你可能需要查看来源运行它。当然,如果你想让 PIL 支持它们,你需要安装依赖项,例如

sudo apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

要运行比 Ubuntu 中包含的版本更新的 PIL 版本:

pip install Pillow

相关内容