如何安装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更多信息可以在这里找到。 简而言之,是安装python库的一种方便(并且成为标准)的方式。

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

事实certificate,APT安装将库放在/ usr / lib / x86_64-linux-gnu下 ,PIL将在/ usr / lib /中搜索它们。 所以你必须为PIL创建符号链接才能看到它们。

尝试查看/ 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

成功!

在此处输入图像描述


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 ,至少在我的机器上,你必须这样做

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

以上答案为x86位置的x64库创建链接。 相反,我会下载PIL源,然后在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现在安装Pillow而不是PIL 。 至于selftest.py ,您可能需要检查源以运行它。 当然,如果您希望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构建枕头:

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

…然后你可以导入PIL