2014-11-25 6 views
23

Umgebung: Linux Mint 17 Cinnamon."Fehler: Befehl 'x86_64-linux-gnu-gcc' mit Exit-Status 1 fehlgeschlagen" in virtualenv

Dieser Fehler wird angezeigt:

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 

, wenn in einem der folgenden Versuch virtualenv:

Installing Pillow error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

:

pip install lxml 
pip install pillow 
pip install pycrypto 
pip install pymongo (fails but still shows in pip freeze) 

Es gibt hier mehrere Lösungen, die python2.7-dev empfehlen die Installation Installing lxml in virtualenv via pip install error: command 'x86_64-linux-gnu-gcc' failed

Pillow installation error: command 'gcc' failed with exit status 1

fatal error: Python.h: No such file or directory

Ich bin von dieser Empfehlung jedoch verwirrt, weil es mein Verständnis ist, dass, wie etwas mit:

sudo apt-get install python2.7-dev 

dies dem Haupt * System hinzufügen würde * Instanz Python, eher als der in virtualenv. (siehe - https://unix.stackexchange.com/a/56392/92486)

Kann ich python2.7-dev nur zur virtualenv Version von Python hinzufügen?

+0

Dies sollte auf den Server verschoben werden Fehler ? –

Antwort

16

Ich installierte python2.7-dev über Synaptic Package Manager in Linux Mint 17

dann könnte ich erreichen folgendes in virtualenv:

pip install pillow 
pip install pycrypto 

Und dann habe ich installiert libxml2-dev und libxslt1-dev über Synaptische und konnte die folgenden erreichen :

pip install lxml 

Ich tat auch dies, so dass der Pymon gehen installiert haben keine Fehler haben:

pip uninstall pymongo 
pip install pymongo # i defined the version i needed ie pip install pymongo==2.6.2 

Ich bin immer noch verwirrt, wie dies das Problem behebt, weil ich dachte, virtualenv eine isolierte Umgebung war. Jede diesbezügliche Klärung wird geschätzt.

+2

Dies funktioniert auch für Ubuntu 14.10! Dank einer Tonne @ user1063287 hast du meinen Tag gerettet! :) – Dhruv

+0

Gut zu hören @DhruvSingh – user1063287

+0

Aus der Dokumentation: "' virtualenv' ist ein Tool zum Erstellen von isolierten Python-Umgebungen. " Was sie meinen ist isoliert in Bezug auf * Python-Pakete *. C-Bibliotheken, Header, Build-Tools usw.Vom externen System sind auch Ihre Python-Binärdateien sichtbar. Es ist keine virtuelle Maschine oder eine separate Python-Binärinstallation. –

0

Dies kann ein Problem im Pip sein. Zu lösen, versuchen:

sudo apt-get remove python-pip

pip zu installieren, sicher herunterladen get-pip.py.

https://bootstrap.pypa.io/get-pip.py

sudo python get-pip.py

5

Arbeit für mich:
Einfach installieren python2.7-dev erste
sudo apt-get install python2.7-dev

+1

Arbeitete für mich auch! So hilfreich xD –

1

Für mich ist die Installation von lxml auf Kompilation versagte.Ich folgte den Anweisungen für die Installation von lxml und reduziert die Compiler-Optimierungen:

sudo CFLAGS="-O0" pip install lxml 

Nach Dadurch gelang es der Kompilierung von lxml.

18

Meistens sind das Abhängigkeiten.

Nach dem Stack-Trace des GCC-Compilers kann man die fehlenden Dateien sehen. Manchmal reicht die Installation der Python-Entwicklungspakete nicht aus.

Zum Beispiel: Ich versuchte pip install requests[security] in meinen virtualenv foo zu tun. Dies ist das Ergebnis, das der Pip-Installer mir gegeben hat.

Failed building wheel for cryptography 
Running setup.py bdist_wheel for cffi 
Stored in directory: /root/.cache/pip/wheels/99/e7/9a/68b1c8ca6f6f92b5feebd4d9434f50712b84f6a66d1285ea21 
Successfully built cffi 
Failed to build cryptography 
Installing collected packages: cffi, cryptography, pyOpenSSL, ndg-httpsclient, requests 
Running setup.py install for cryptography 
Complete output from command /opt/foo/django-cms-virtualenv/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-eZaLAG/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-BwgYTp-record/install-record.txt --single-version-externally-managed --compile --install-headers /opt/foo/django-cms-virtualenv/include/site/python2.7/cryptography: 
running install 
running build 
running build_py 
running egg_info 
writing requirements to src/cryptography.egg-info/requires.txt 
writing src/cryptography.egg-info/PKG-INFO 
writing top-level names to src/cryptography.egg-info/top_level.txt 
writing dependency_links to src/cryptography.egg-info/dependency_links.txt 
writing entry points to src/cryptography.egg-info/entry_points.txt 
warning: manifest_maker: standard file '-c' not found 

reading manifest file 'src/cryptography.egg-info/SOURCES.txt' 
reading manifest template 'MANIFEST.in' 
no previously-included directories found matching 'docs/_build' 
warning: no previously-included files matching '*' found under directory 'vectors' 
writing manifest file 'src/cryptography.egg-info/SOURCES.txt' 
running build_ext 
building '_Cryptography_cffi_a269d620xd5c405b7' extension 
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/cryptography/hazmat/bindings/__pycache__/_Cryptography_cffi_a269d620xd5c405b7.c -o build/temp.linux-x86_64-2.7/src/cryptography/hazmat/bindings/__pycache__/_Cryptography_cffi_a269d620xd5c405b7.o 
src/cryptography/hazmat/bindings/__pycache__/_Cryptography_cffi_a269d620xd5c405b7.c:217:25: fatal error: openssl/aes.h: Datei oder Verzeichnis nicht gefunden 
#include <openssl/aes.h> 
         ^
compilation terminated. 
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 

Der wichtige Teil ist die: #include <openssl/aes.h>

Der Compiler ziemlich klar macht, dass es diese Datei ist anspruchsvoll - aber es ist nicht, dass es im Dateisystem.

Wissen, dass das einzige, was noch zu tun ist: installieren Sie die benötigten Bibliotheken!

  1. Finden Sie heraus, welches Paket für Ihre Distribution benötigt wird: z.B. Für Ubuntu können Sie zu The Ubuntu Package Search Site gehen und die fehlende Datei eingeben, die Sie suchen. In diesem Fall "aes.h"
  2. Installieren Sie die benötigten Pakete mit dem Verwaltungstool für die Verteilungspakete: z. für Ubuntu:

    aptitude install libssl-dev

  3. Retry mit pip in Ihrem virtualenv:

    pip install requests[security]

+1

Ja! 'install libssl-dev' löste meine Probleme beim Versuch, bpython und eine neue Ubuntu 14.04-Box zu installieren. Tausend Dank! – kramer65

+1

in meinem Fall die fehlende lib war 'libffi-dev' – omat

0

Die cffi Bibliothek libffi-dev benötigt:

sudo apt-get install libffi libffi-dev 
0

Der einfachste Weg ist:

sudo apt-get build-dep python-imaging 

und dann

pip install pillow 
0

Dies funktioniert für mich, 12,04, python2.7.6 für Paket lxml

sudo pip install libxml2 libxml2-dev libxslt1-dev 
sudo pip install lxml 
+0

ich denke, du meintest sudo apt-get install anstelle von pip? – Vinay

2

In Ubuntu 16.04.1 dies für mich gearbeitet:

sudo apt-get install libxml2-dev libxslt1-dev python-dev 
Verwandte Themen