如何安装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 。