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


在Ubuntu virtualenv上进行pip安装 Pillow 时出错

, , ,

问题描述

我有一个ec2实例,并且最初在virtualenv中安装了Pillow 2.0。我以某种方式尝试将其升级到Pillow 2.5时,失败并显示以下消息。即使在完全重新安装之前完全卸下Pillow之后,该错误也是相同的。 (所以现在我的virtualenv中根本没有 Pillow )

$ pip install Pillow
....
....
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Qunused-arguments -Qunused-arguments -fPIC -DHAVE_LIBJPEG -DHAVE_LIBZ -DHAVE_LIBTIFF -I/usr/include/freetype2 -I/home/andycheng/realprice/env/build/pillow/libImaging -I/home/andycheng/realprice/env/include -I/usr/include/tcl8.5 -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu -c libImaging/RawDecode.c -o build/temp.linux-x86_64-2.7/libImaging/RawDecode.o

gcc: error: unrecognized option ‘-Qunused-arguments’

gcc: error: unrecognized option ‘-Qunused-arguments’

....
....
gcc: error: build/temp.linux-x86_64-2.7/libImaging/XbmEncode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/ZipDecode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/ZipEncode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/TiffDecode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/Incremental.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/Jpeg2KDecode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/Jpeg2KEncode.o: No such file or directory

gcc: error: unrecognized option ‘-Qunused-arguments’

gcc: error: unrecognized option ‘-Qunused-arguments’

error: command 'gcc' failed with exit status 1

----------------------------------------
Cleaning up...
Command /home/andycheng/realprice/env/bin/python -c "import setuptools, tokenize;__file__='/home/andycheng/realprice/env/build/Pillow/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-U8jA_X-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/andycheng/realprice/env/include/site/python2.7 failed with error code 1 in /home/andycheng/realprice/env/build/Pillow

我不知道这是否相关,但是日志中有很多gcc: error: build/temp.linux-x86_64-2.7/_imaging.o: No such file or directory错误。而且还有很多gcc: error: unrecognized option ‘-Qunused-arguments’

我可以通过root访问权限安装Pillow 2.5,但是它将不会安装在我的virtualenv中。

sudo pip install Pillow  # this works but wrong directory
pip install -I Pillow==2.0  # gives the same error and would not install

版本号

画中画:1.5.4

Linux:Ubuntu 12.04.4 LTS(所有软件包已升级)

谢谢

最佳思路

我的情况略有不同,因为我的ubuntu 15.04也缺少libjpeg,因此每次安装均失败。显然,有时候 Pillow 无法找到所需的库,最简单的解决方法是安装dev版本并将其链接到用户库。编辑:也可以在Ubuntu 16.04中使用

sudo apt-get install python-dev
sudo apt-get install libjpeg8-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib

pip install pillow

找到部分解决方案here

次佳思路

对于我自己和其他所有人,请注意,要使其在Elementary OS Luna(Ubuntu 12.04)上编译,需要根据OP上的注释安装您的virtualenv python版本所需的python标头。我正在使用默认的python版本并测试3.4(通过deadsnakes ppa),所以对我来说,这是:

sudo apt-get install python-dev
sudo apt-get install python3.4-dev

但!我仍然遇到相同的错误!我根据OP的答案检查了.bashrc,但没有任何匹配的导出。然后它击中了我,我已经进行了一段时间的故障排除,并从其他地方的答案中尝试了设置这些问题并且没有重新启动bash。

因此,请不要忘记重新启动bash(或者我想是re-source)以确保您的导出与.bashrc相匹配!

编辑:这有点长的评论,但不是一个真正的答案。如有必要将进行修改。

第三种思路

我也有同样的头痛…

解决方案是在阅读文档后找到的,内容为:

从3.0.0版开始Pillow需要libjpeg …

因此,请尝试上一个:

pip install pillow==2.9.0

(它适用于python 2.6及更高版本)

祝好运!

第四种思路

新版本3.0无效,我们需要安装适用于Django的2.9.0版本。在虚拟环境中执行此操作:

pip install Pillow==2.9.0

我在使用Elementary OS的Ubuntu中也应如此。

第五种思路

终于我找到了解决这个头痛的办法!

原来我在.bashrc中有两个标志设置:

export CFLAGS=-Qunused-arguments                                    
export CPPFLAGS=-Qunused-arguments

该.bashrc是从我的Macbook Pro复制而来的,这两个标志是XCODE所必需的。看来它们将在Linux中中断。

删除这两个标志后,pip install Pillow将按预期工作。

谢谢大家的帮助。

第六种思路

Ubuntu 16.04 virtualenv

pip install pillow==2.9.0

参考资料

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