我正在为我的Django项目使用Ubuntu和VitualEnv。
我使用Synaptic Package Manager安装了PIL库,它运行正常。但是,当我创建一个VitrualEnv并尝试使用pip安装PIL时,它会安装但我得到这种奇怪的行为:
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2]
--------------------------------------------------------------------
*** TKINTER support not available
*** JPEG support not available
*** ZLIB (PNG/ZIP) support not available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
我希望我可以将requirements.txt用于所有依赖项,但可能必须以某种方式手动安装PIL ......但是如何?
编辑:谢谢John Keyes ,你是对的,我跑:
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/
然后再尝试PIL安装我得到:
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
- -------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
修改:您可能需要安装libfreetype6-dev libjpeg8-dev
答案 0 :(得分:9)
此thread on ubuntu forums涵盖了此主题。
答案 1 :(得分:6)
为了以防万一,如果你使用的是virtualenv,你不需要创建系统范围的符号链接,这里是适用于任何架构的通用解决方法:
ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libz.so $VIRTUAL_ENV/lib/
ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libfreetype.so $VIRTUAL_ENV/lib/
ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libjpeg.so $VIRTUAL_ENV/lib/
你需要在virtualenv激活的shell会话中执行这些行,符号链接将在你的virtualenv lib
目录中创建。
命令dpkg-architecture -qDEB_HOST_MULTIARCH
用于检测主系统libs目录(uname -i
不可靠)。环境变量$VIRTUAL_ENV
由virtualenv activate
脚本设置。
答案 2 :(得分:4)
似乎对我们有用的解决方案(从PIL 1.7.7开始)是首先卸载PIL然后再卸载Pillow然后pip install pillow --upgrade。当然你需要安装libjpeg8-dev。