当前位置: 首页>>技术教程>>正文


如何安装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代码添加一个二维条码生成器,我能找到的所有二维条码生成器都是用python编写的,似乎都使用了PIL)。

最佳解决方案

类似的事情发生在我身上,我这样解决了

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

并尝试通过pip install PIL安装。

有关pip的更多信息,请访问here。简而言之,是安装python库的一种方便(并且成为标准)的方式。

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

It turns out that the APT installations put the libraries under /usr/lib/x86_64-linux-gnu and PIL will search for them in /usr/lib/. So you have to create symlinks for PIL to see them.

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

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/

次佳解决方案

上面的解决方案在Ubuntu 12.10上不起作用,因为libjpeg在存储库中不可用。

最终为我工作的是:

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

如果您收到错误“您必须在sources.list中放置一些’source’ 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

成功!

python,software-installation,image-processing,ubuntu


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

第三种解决方案

我只想补充说,pip install pil不再有效,至少在我的机器上,你必须要做

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

第四种方案

以上答案为x86位置的x64库创建链接。相反,我会下载PIL source然后在setup.py中添加这些行:

    add_directory(library_dirs, "/usr/lib/x86_64-linux-gnu")
    add_directory(library_dirs, "/lib/x86_64-linux-gnu")

在这些行之后(〜第211行)

    # standard locations
    add_directory(library_dirs, "/usr/local/lib")
    add_directory(include_dirs, "/usr/local/include")

    add_directory(library_dirs, "/usr/lib")
    add_directory(include_dirs, "/usr/include")

重新安装PIL。如果你正在使用pip:

pip uninstall PIL

然后从源目录运行:

python setup.py install

第五种方案

这个解决方案适用于Ubuntu 14.04,因为libjpeg在存储库中不可用。

什么最终为我工作

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

第六种方案

sudo apt-get install python-imaging现在是installs Pillow not PIL。对于selftest.py,您可能需要check out the source才能运行它。当然,如果您希望PIL支持它们,您需要安装依赖项,例如

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

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

pip install Pillow

第七种方案

我需要在14.04(不使用系统包)的virtualenv中安装Pillow。

要在virtualenv(Python 2.7)中从PyPI构建 Pillow :

$ sudo apt-get build-dep pillow
$ virtualenv venv
$ source venv/bin/activate
(venv)$ pip install pillow

…然后你可以导入PIL。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2332.html,未经允许,请勿转载。