Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error for pip install Pillow on Ubuntu virtualenv

I have an ec2 instance and had Pillow 2.0 installed in my virtualenv initially. Somehow when I tried to upgrade it to Pillow 2.5, it failed with the following message. The error is the same even after I removed Pillow completely prior to reinstall. (So now I don't have Pillow in my virtualenv at all)

$ 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 

I don't know if this is related but there are a lot of gcc: error: build/temp.linux-x86_64-2.7/_imaging.o: No such file or directory errors in the log. And there are a lot of gcc: error: unrecognized option ‘-Qunused-arguments’ too.

I am able to install Pillow 2.5 with my root access though, but then the it will not be installed in my virtualenv.

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

Versions

PIP: 1.5.4

Linux: Ubuntu 12.04.4 LTS (all package upgraded)

Thank you

like image 876
Andy Avatar asked Jul 09 '14 05:07

Andy


People also ask

Does Pillow work on Linux?

Linux InstallationMost major Linux distributions, including Fedora, Ubuntu and ArchLinux also include Pillow in packages that previously contained PIL e.g. python-imaging . Debian splits it into two packages, python3-pil and python3-pil.

What Python version does Pillow support?

Pillow < 2.0. 0 supports Python versions 2.4, 2.5, 2.6, 2.7; Pillow >= 2.0. 0 supports Python versions 2.6, 2.7, 3.2, 3.3.


2 Answers

My case was slightly different as my ubuntu 15.04 was missing also libjpeg, so the installation failed each time. Apparently sometimes pillow can not find required library and the easiest way to fix it is to install the dev version and link it to the user libs. Edit: also works in 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 

Partial solution found here

like image 109
Mr.Coffee Avatar answered Sep 24 '22 19:09

Mr.Coffee


Note for myself and any others, getting this to compile on Elementary OS Luna (Ubuntu 12.04) requires installation of the python headers you need for your virtualenv python version per the comments on the OP. I am using the default python version and testing 3.4 (via deadsnakes ppa) so for me this was:

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

BUT! I was still getting the same error! I checked my .bashrc per the OPs answer, I didn't have any matching exports. Then it hit me, I'd been troubleshooting for a while and from an answer somewhere else I had tried setting those and hadn't restarted bash.

So don't forget to restart (or re-source I suppose) bash to make sure your exports match .bashrc!

edit: This is a bit long for a comment but not really an answer. Will modify if necessary.

like image 35
nighliber Avatar answered Sep 23 '22 19:09

nighliber