python-2.7 - error command x86_64 linux gnu gcc failed with exit status 4
"Error: el comando ''x86_64-linux-gnu-gcc'' falló con el estado de salida 1" en virtualenv (9)
En Ubuntu 16.04.1 esto funcionó para mí:
sudo apt-get install libxml2-dev libxslt1-dev python-dev
Medio ambiente: Linux Mint 17 Cinnamon.
Este error se muestra:
error: command ''x86_64-linux-gnu-gcc'' failed with exit status 1
al intentar lo siguiente en un virtualenv
:
pip install lxml
pip install pillow
pip install pycrypto
pip install pymongo (fails but still shows in pip freeze)
Aquí hay varias soluciones que recomiendan instalar python2.7-dev
:
Instalando lxml en virtualenv vía pip install error: comando ''x86_64-linux-gnu-gcc'' falló
Error de instalación de la almohada: el comando ''gcc'' falló con el estado de salida 1
error fatal: Python.h: no existe tal archivo o directorio
Sin embargo, estoy confundido con esta recomendación porque entiendo que usar algo como:
sudo apt-get install python2.7-dev
agregaría esto a la instancia main * system * de Python, más bien que la de virtualenv
. (ver - https://unix.stackexchange.com/a/56392/92486 )
¿Puedo agregar python2.7-dev
solo a la versión virtualenv
de Python?
Esto funciona para mí, 12.04, python2.7.6 para el paquete lxml
sudo pip install libxml2 libxml2-dev libxslt1-dev
sudo pip install lxml
Esto puede ser un problema en el pip. Para resolver, intente:
sudo apt-get eliminar python-pip
Para instalar pip, descargue de forma segura get-pip.py.
https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Instalé python2.7-dev
través de Synaptic Package Manager en Linux Mint 17.
Entonces podría lograr lo siguiente en virtualenv
:
pip install pillow
pip install pycrypto
Y luego instalé libxml2-dev
y libxslt1-dev
través de Synaptic y pude lograr lo siguiente:
pip install lxml
También hice esto para que la instalación de Pymongo no tuviese ningún error:
pip uninstall pymongo
pip install pymongo # i defined the version i needed ie pip install pymongo==2.6.2
Todavía estoy confundido de cómo esto soluciona el problema, porque pensé que virtualenv
era un entorno aislado. Cualquier aclaración sobre esto apreciada.
La biblioteca cffi
necesita libffi-dev
:
sudo apt-get install libffi libffi-dev
La forma más fácil es:
sudo apt-get build-dep python-imaging
y entonces
pip install pillow
La mayoría de las veces estos son problemas de dependencia.
Siguiendo el seguimiento de pila del compilador gcc, se pueden ver los archivos perdidos. A veces, la instalación de los paquetes de desarrollo de Python no es suficiente.
Por ejemplo: traté de hacer pip install requests[security]
en mi virtualenv foo . Este es el resultado que me dio el instalador de pip.
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
La parte importante es: #include <openssl/aes.h>
El compilador deja bastante claro que exige este archivo, pero no está allí en el sistema de archivos.
Sabiendo eso, lo único que queda por hacer es: ¡ instalar las bibliotecas necesarias!
- Averigüe qué paquete es necesario para su distribución: por ejemplo, para Ubuntu, puede ir al sitio de búsqueda de paquetes de Ubuntu e ingresar el archivo perdido que está buscando. En este caso " aes.h "
Instale los paquetes necesarios con su herramienta de administración de paquetes de distribución: por ejemplo, para Ubuntu:
aptitude install libssl-dev
Vuelva a intentar con pip en su virtualenv:
pip install requests[security]
Para mí, la instalación de lxml estaba fallando en la compilación. Seguí las instrucciones para la instalación de lxml y reduje las optimizaciones del compilador:
sudo CFLAGS="-O0" pip install lxml
Después de hacer esto, la compilación de lxml tuvo éxito.
Trabaja para mi :
Simplemente instala python2.7-dev primero
sudo apt-get install python2.7-dev