web-dev-qa-db-fra.com

Erreur pour pip installer Pillow sur Ubuntu virtualenv

J'ai une instance ec2 et Pillow 2.0 était initialement installé dans mon virtualenv. D'une manière ou d'une autre, lorsque j'ai essayé de le mettre à niveau vers Pillow 2.5, le message suivant a échoué. L'erreur est la même, même après que j'ai complètement supprimé Pillow avant de le réinstaller. (Alors maintenant, je n'ai pas du tout d'oreiller dans mon virtualenv)

$ 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

Je ne sais pas si c'est lié mais il y a beaucoup de gcc: error: build/temp.linux-x86_64-2.7/_imaging.o: No such file or directory erreurs dans le journal. Et il y a beaucoup de gcc: error: unrecognized option ‘-Qunused-arguments’ aussi.

Je peux installer Pillow 2.5 avec mon accès root cependant, mais il ne sera pas installé dans mon virtualenv.

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

Les versions

PIP: 1.5.4

Linux: Ubuntu 12.04.4 LTS (tous les paquets mis à jour)

Merci

43
Andy

Enfin, j'ai trouvé la réponse à ce mal de tête!

Il s'avère que j'ai deux paramètres de drapeau dans mon .bashrc:

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

Le fichier .bashrc a été copié à partir de mon Macbook Pro et ces deux indicateurs ont été nécessaires pour contourner XCODE. Il semble qu'ils vont casser sous Linux.

Après avoir retiré ces deux drapeaux, pip install Pillow fonctionne comme prévu.

Merci à tous pour l'aide.

8
Andy

Mon cas était légèrement différent car mon Ubuntu 15.04 était également absent de libjpeg, donc l'installation échouait à chaque fois. Apparemment, parfois, pillow ne peut pas trouver la bibliothèque requise et le moyen le plus simple pour y remédier consiste à installer la version dev et à la lier aux bibliothèques utilisateur. Edit: fonctionne également dans 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

Solution partielle trouvée ici

85
Mr.Coffee

Remarque pour moi et pour tous les autres, pour compiler ceci sur un système d'exploitation élémentaire Luna (Ubuntu 12.04) nécessite l'installation des en-têtes python dont vous avez besoin pour votre virtualenv python version selon les commentaires sur l'OP. J'utilise la version par défaut python version et test 3.4 (via deadsnakes ppa)), donc pour moi, c'était:

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

MAIS! J'avais toujours la même erreur! J'ai vérifié mon .bashrc par la réponse de PO, je n'ai eu aucune exportation correspondante. Puis, ça m’a frappé, je faisais du dépannage depuis un moment et d’une réponse quelque part, j’avais essayé de les régler et je n’avais pas redémarré bash.

Donc, n'oubliez pas de redémarrer (ou de re-source je suppose) bash pour vous assurer que vos exportations correspondent à .bashrc!

edit: C'est un peu long pour un commentaire mais pas vraiment une réponse. Modifiera si nécessaire.

40
nighliber

J'ai eu le même mal de tête aussi ...

La solution a été trouvée après la lecture de la documentation:

A partir de la version 3.0.0, Pillow a besoin de libjpeg ...

Alors essayez le précédent:

pip install pillow==2.9.0

(Cela fonctionne pour python 2.6 et plus)

Bonne chance!

24
ilyas Jumadurdyew

La nouvelle version 3.0 ne fonctionne pas, nous devons installer la version 2.9.0 qui fonctionne avec Django. Faites ceci en étant dans l'environnement virtuel:

pip install Pillow==2.9.0

Cela devrait fonctionner aussi dans Ubuntu, j'utilise Elementary OS.

10

Ubuntu 16.04 virtualenv

pip install pillow==2.9.0
4
Yao Qian

Vous devrez peut-être installer les en-têtes de développement python.

Sudo apt-get install build-dep python-imaging
2
neo

Sur Fedora, installez rpm-build résolu le problème pour moi. Assurez-vous que vous avez python-devel et libjpeg-devel installé aussi.

0
syntagma

Sur ma machine CentOS, je devais:

yum install python-devel
0
Raptor