2014-07-09 7 views
38

Ich habe eine ec2-Instanz und hatte Pillow 2.0 in meinem virtualenv zunächst installiert. Irgendwie, als ich versuchte, es auf Kissen 2.5 zu aktualisieren, scheiterte es mit der folgenden Nachricht. Der Fehler ist der gleiche, auch nachdem ich das Kissen vollständig vor der Neuinstallation entfernt habe. (So, jetzt habe ich Kissen nicht in meinem virtualenv überhaupt)Fehler für pip install Kissen auf Ubuntu 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 

Ich weiß nicht, ob dies zusammenhängt, aber es gibt eine Menge von gcc: error: build/temp.linux-x86_64-2.7/_imaging.o: No such file or directory Fehlern im Protokoll. Und es gibt viele gcc: error: unrecognized option ‘-Qunused-arguments’ auch.

Ich kann Pillow 2.5 zwar mit meinem root-Zugang installieren, aber dann wird es nicht in meinem virtualenv installiert.

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

Versionen

PIP: 1.5.4

Linux: Ubuntu 12.04.4 LTS (alle Paket aktualisiert)

Danke

+1

hast du Python-dev installiert (Befehl: sudo apt-get install python-dev)? – ruddra

+0

Ja, ich habe python-dev installiert – Andy

Antwort

8

Endlich habe ich die Antwort gefunden zu diese Kopfschmerzen!

Es stellt sich heraus, dass ich in meinem .bashrc zwei Flag-Einstellungen haben:

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

Die Bashrc von meinem Macbook Pro und diese beiden Fahnen wurden als Arbeit um für XCODE erforderlich kopiert wurde. Es scheint, dass sie in Linux brechen werden.

Nach dem Entfernen dieser beiden Flags funktioniert pip install Pillow wie erwartet.

Danke allen für die Hilfe.

+0

Ja! Vielen Dank! Das war so ein dunkler Fehler für mich. Ich bin von einem Mac zu Ubuntu gewechselt, und einige der Pakete, die ich installiert habe (namentlich virtualenvburrito), waren hauptsächlich auf Mac-Benutzer ausgerichtet, also glaube ich, dass sie diese Flaggen irgendwie in meine Umgebung eingefügt haben. Um es zu beheben, fügte ich die folgenden zwei Zeilen zu meinem .bashrc: 'Export CFLAGS = '' Export CPPFLAGS = '' – Spike

39

Hinweis für mich selbst und andere, dass dies auf Elementary OS Luna (Ubuntu 12.04) kompiliert wird, erfordert die Installation der Python-Header, die Sie für Ihre virtualenv Python-Version nach den Kommentaren auf dem OP benötigen. Ich bin die Standard-Python-Version verwenden und testen 3.4 (via deadsnakes ppa) so für mich war:

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

ABER! Ich bekam immer noch den gleichen Fehler! Ich habe meine .bashrc per OP-Antwort überprüft, ich hatte keine passenden Exporte. Dann traf es mich, ich war eine Zeit lang mit der Fehlersuche beschäftigt und von einer Antwort woanders hatte ich versucht, diese einzustellen und hatte bash nicht neu gestartet.

Also vergessen Sie nicht, neu zu starten (oder re-source ich vermute) Bash, um sicherzustellen, dass Ihre Exporte übereinstimmen. Bashrc!

bearbeiten: Dies ist ein bisschen lang für einen Kommentar, aber nicht wirklich eine Antwort. Wird bei Bedarf geändert.

+0

Dies ist in Ordnung als Antwort! 'sudo apt-get install python-dev' behebt das Problem auf meiner Ubuntu 12.04-Box. Keine weiteren Schritte erforderlich. (Es ist eine lokale VirtualBox, nicht wirklich ein Amazon EC2-Image.) – Peterino

+4

In vielen dieser Fälle ist die Installation des 'python-dev'-Pakets für die spezielle Version von Python, die Sie in Ihrem' virtenv' verwenden, der Schlüssel ... Für mich, v3.3 für dieses Projekt, arbeitete: 'sudo apt-get installieren python3.3-dev' ... +1 – nicorellius

+0

Das funktionierte gut für meine Ubuntu 12.04 Maschine! –

79

Mein Fall war etwas anders als mein Ubuntu 15.04 fehlte auch libjpeg, so dass die Installation jedes Mal fehlschlug. Scheinbar kann manchmal pillow die benötigte Bibliothek nicht finden und der einfachste Weg, es zu reparieren, ist die dev-Version zu installieren und mit den Benutzer-Bibliotheken zu verlinken.

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 

Teillösung gefunden here

+2

Ich habe 'libjpeg-dev' installiert, das' libjpeg62-turbo-dev' auf meinem Raspberry Pi (Raspbian Jessie) gezogen hat. Dies funktioniert mit Pillow 3.1.0. – beruic

+0

Dies funktionierte perfekt für mich :) – dspacejs

+0

arbeitete für mich, auf Ubuntu 16.04 –

10

Die neue Version 3.0 nicht funktioniert, müssen wir die 2.9.0 Version installieren, die mit Django funktioniert. Tun Sie dies während der virtuellen Umgebung:

Dies sollte auch in Ubuntu funktionieren, ich benutze Elementary OS.

+0

Ich habe versucht, libjpeg8-dev pro Mr.Coffee's Antwort; hat nicht funktioniert.Versuchte Installation von python3.4-dev; hat nicht funktioniert. Die Version 2.9 hat funktioniert. – Deleet

+0

Ich war auch mit dem gleichen Problem konfrontiert ..... Mit Ihrer Lösung konnte ich Kissen installieren .... Danke Kumpel. –

23

hatte ich die gleichen Kopfschmerzen zu ...

Die Lösung nach der Lektüre docs gefunden wurde, das sagt:

ab Version 3.0.0 Kissen libjpeg braucht ...

so versuchen die vorherige:

pip install pillow==2.9.0 

(Es funktioniert für python 2.6 und höher)

Viel Glück!

4

Ubuntu 16.04 virtualenv

pip install pillow==2.9.0 
1

Möglicherweise müssen Sie die Python-Entwicklungs-Header installieren.

sudo apt-get build-dep python-imaging 
0

auf Fedora, rpm-build Installation gelöst es für mich. Stellen Sie sicher, dass Sie auch python-devel und libjpeg-devel installiert haben.

0

Auf meinem CentOS Maschine musste ich:

yum install python-devel 
Verwandte Themen