Instalación de lxml con pip en virtualenv Ubuntu 12.10 error: el comando ‘gcc’ falló con el estado de salida 4

Tengo el siguiente error al intentar ejecutar “pip install lxml” en un virtualenv en Ubuntu 12.10 x64. Tengo Python 2.7.

He visto otras preguntas relacionadas aquí sobre el mismo problema y he intentado instalar python-dev, libxml2-dev y libxslt1-dev.

Por favor, eche un vistazo a la traza desde el momento en que le doy la orden al momento en que ocurre el error.

 Descarga / desembalaje de lxml
   Ejecutando setup.py egg_info para el paquete lxml
     /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Opción de distribución desconocida: 'bugtrack_url'
       warnings.warn (msg)
     Construyendo la versión lxml 3.1.2.
     Edificio sin Cython.
     Usando la configuración de comstackción de libxslt 1.1.26
     Construyendo contra libxml2 / libxslt en el siguiente directorio: / usr / lib

     advertencia: no se encontraron archivos que coincidan con '* .txt' en el directorio 'src / lxml / tests'
 Instalación de los paquetes recogidos: lxml
   Ejecutando setup.py install para lxml
     /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Opción de distribución desconocida: 'bugtrack_url'
       warnings.warn (msg)
     Construyendo la versión lxml 3.1.2.
     Edificio sin Cython.
     Usando la configuración de comstackción de libxslt 1.1.26
     Construyendo contra libxml2 / libxslt en el siguiente directorio: / usr / lib
     Construyendo la extensión 'lxml.etree'
     gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I / usr / include / libxml2 -I / home / admin / .virtualenvs / dev.actualito.com / build / lxml / src / lxml / includes -I / usr / include / python2.7 -c src / lxml / lxml.etree.c -o build / temp.linux-x86_64-2.7 / src / lxml / lxml.etree.o
     src / lxml / lxml.etree.c: En la función '__pyx_f_4lxml_5etree__getFilenameForFile':
     src / lxml / lxml.etree.c: 26851: 7: advertencia: variable '__pyx_clineno' establecida pero no utilizada [-Wunused-but-set-variable]
     src / lxml / lxml.etree.c: 26850: 15: advertencia: variable '__pyx_filename' configurada pero no utilizada [-Wunused-but-set-variable]
     src / lxml / lxml.etree.c: 26849: 7: advertencia: variable '__pyx_lineno' configurada pero no utilizada [-Wunused-but-set-variable]
     src / lxml / lxml.etree.c: En la función '__pyx_pf_4lxml_5etree_4XSLT_18__call__':
     src / lxml / lxml.etree.c: 138273: 81: advertencia: pasando el argumento 1 de '__pyx_f_4lxml_5etree_12_XSLTContext__copy' desde un tipo de puntero incompatible [habilitado de forma predeterminada]
     src / lxml / lxml.etree.c: 136229: 52: nota: esperado 'struct __pyx_obj_4lxml_5etree__XSLTContext *' pero el argumento es de tipo 'struct __pyx_obj_4lxml_5etree__BaseContext *'
     src / lxml / lxml.etree.c: En la función '__pyx_f_4lxml_5etree__copyXSLT':
     src / lxml / lxml.etree.c: 139667: 79: advertencia: pasando el argumento 1 de '__pyx_f_4lxml_5etree_12_XSLTContext__copy' desde un tipo de puntero incompatible [habilitado de forma predeterminada]
     src / lxml / lxml.etree.c: 136229: 52: nota: esperado 'struct __pyx_obj_4lxml_5etree__XSLTContext *' pero el argumento es de tipo 'struct __pyx_obj_4lxml_5etree__BaseContext *'
     src / lxml / lxml.etree.c: En el nivel superior:
     src / lxml / lxml.etree.c: 12384: 13: advertencia: '__pyx_f_4lxml_5etree_displayNode' definido pero no utilizado [-Wunused-function]
     gcc: error interno del comstackdor: Killed (progtwig cc1)
     Por favor envíe un informe de error completo,
     con fuente preprocesada si procede.
     Consulte las instrucciones.
     error: el comando 'gcc' falló con el estado de salida 4
     Complete la salida del comando /home/admin/.virtualenvs/dev.actualito.com/bin/python -c "importar setuptools; __ file __ = '/ home / admin / .virtualenvs / dev.actualito.com / build / lxml / setup. py '; exec (compile (abrir (__ archivo __). leer (). reemplazar (' \ r \ n ',' \ n '), __archivo__,' exec ')) "instalar --record / tmp / pip-asDtN5- record / install-record.txt --single-version-externally managed --install-headers /home/admin/.virtualenvs/dev.actualito.com/include/site/python2.7:
     /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Opción de distribución desconocida: 'bugtrack_url'

   warnings.warn (msg)

 Construyendo la versión lxml 3.1.2.

 Edificio sin Cython.

 Usando la configuración de comstackción de libxslt 1.1.26

 Construyendo contra libxml2 / libxslt en el siguiente directorio: / usr / lib

 ejecutando instalar

 ejecución en ejecución

 corriendo build_py

 copiando src / lxml / includes / lxml-version.h -> build / lib.linux-x86_64-2.7 / lxml / includes

 corriendo build_ext

 Construyendo la extensión 'lxml.etree'

 gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I / usr / include / libxml2 -I / home / admin / .virtualenvs / dev.actualito.com / build / lxml / src / lxml / includes -I / usr / include / python2.7 -c src / lxml / lxml.etree.c -o build / temp.linux-x86_64-2.7 / src / lxml / lxml.etree.o

 src / lxml / lxml.etree.c: En la función '__pyx_f_4lxml_5etree__getFilenameForFile':

 src / lxml / lxml.etree.c: 26851: 7: advertencia: variable '__pyx_clineno' establecida pero no utilizada [-Wunused-but-set-variable]

 src / lxml / lxml.etree.c: 26850: 15: advertencia: variable '__pyx_filename' configurada pero no utilizada [-Wunused-but-set-variable]

 src / lxml / lxml.etree.c: 26849: 7: advertencia: variable '__pyx_lineno' configurada pero no utilizada [-Wunused-but-set-variable]

 src / lxml / lxml.etree.c: En la función '__pyx_pf_4lxml_5etree_4XSLT_18__call__':

 src / lxml / lxml.etree.c: 138273: 81: advertencia: pasando el argumento 1 de '__pyx_f_4lxml_5etree_12_XSLTContext__copy' desde un tipo de puntero incompatible [habilitado de forma predeterminada]

 src / lxml / lxml.etree.c: 136229: 52: nota: esperado 'struct __pyx_obj_4lxml_5etree__XSLTContext *' pero el argumento es de tipo 'struct __pyx_obj_4lxml_5etree__BaseContext *'

 src / lxml / lxml.etree.c: En la función '__pyx_f_4lxml_5etree__copyXSLT':

 src / lxml / lxml.etree.c: 139667: 79: advertencia: pasando el argumento 1 de '__pyx_f_4lxml_5etree_12_XSLTContext__copy' desde un tipo de puntero incompatible [habilitado de forma predeterminada]

 src / lxml / lxml.etree.c: 136229: 52: nota: esperado 'struct __pyx_obj_4lxml_5etree__XSLTContext *' pero el argumento es de tipo 'struct __pyx_obj_4lxml_5etree__BaseContext *'

 src / lxml / lxml.etree.c: En el nivel superior:

 src / lxml / lxml.etree.c: 12384: 13: advertencia: '__pyx_f_4lxml_5etree_displayNode' definido pero no utilizado [-Wunused-function]

 gcc: error interno del comstackdor: Killed (progtwig cc1)

 Por favor envíe un informe de error completo,

 con fuente preprocesada si procede.

 Consulte las instrucciones.

 error: el comando 'gcc' falló con el estado de salida 4

 ----------------------------------------
 Comando /home/admin/.virtualenvs/dev.actualito.com/bin/python -c "importar setuptools; __ file __ = '/ home / admin / .virtualenvs / dev.actualito.com / build / lxml / setup.py'; exec (comstackr (abrir (__ archivo __). leer (). reemplazar ('\ r \ n', '\ n'), __archivo__, 'exec')) instalar --record / tmp / pip-asDtN5-record / install -record.txt --single-version-externally management --install-headers /home/admin/.virtualenvs/dev.actualito.com/include/site/python2.7 falló con el código de error 1 en / home / admin / .virtualenvs / dev.actualito.com / build / lxml
 Almacenar el registro completo en /home/admin/.pip/pip.log

Aquí está la nota de mi guardado.

 sudo apt-get install libxml2 sudo apt-get install libxslt1.1 sudo apt-get install libxml2-dev sudo apt-get install libxslt1-dev sudo apt-get install python-libxml2 sudo apt-get install python-libxslt1 sudo apt-get install python-dev sudo apt-get install python-setuptools easy_install lxml 

Ha funcionado para mi ubuntu 12.10

Asegúrese de tener suficiente memoria. Prueba dmesg | tail dmesg | tail para ver si da salida a algo como:

 ... [3778136.277570] Out of memory: Kill process 21267 (cc1) score 557 or sacrifice child [3778136.277587] Killed process 21267 (cc1) total-vm:365836kB, anon-rss:336228kB, file-rss:0kB 

De acuerdo con el sitio lxml usted podría usar dicha construcción:

 CFLAGS="-O0" pip install lxml 

guía de instalación

Nota para los que se instalan globalmente: la forma correcta de pasar las variables de entorno con sudo es después de sudo :

 sudo CFLAGS="-O0" pip install lxml 

Me encontré con la pregunta similar (error: el comando ‘gcc’ falló con el estado de salida 4) esta mañana. Parece que necesitas revisar la memoria de tu máquina. Si la memoria es inferior a 512M, esa puede ser la causa. Intente cerrar algunos servicios temporalmente, como el servidor apache, e intente nuevamente “pip install lxml”. ¡Tal vez funcione!

Me he topado con este problema un par de veces.

Respuesta corta

 Python2: $ python2.7 setup.py clean build --with-cython install Python3: $ pip-3.3 install lxml 

Respuesta larga

La hipótesis es que pip install lxml debería funcionar en todos los entornos, independientemente de si está utilizando Python2 o Python3.

También debe considerarse Cython : sin duda disfrutará de lxml comstackdo con Cython debido a las mejoras de rendimiento relevantes.

Por razones desconocidas para mí, la comstackción en Python2 no encuentra a Cython. Para ser más precisos y absolutamente explícitos sobre este asunto, los dos comandos a continuación NO emplean Cython:

 # DO NOT use these commands. I repeat: DO NOT use these commands. $ pip-2.7 install lxml $ easy_install-2.7 install lxml 

Entonces, cuando usas Python2 solo tienes una alternativa, que yo sepa, que es: ¡comstackr desde fonts, Luke!

 # install build environment and dependencies $ kernel_release=$( uname -r ) $ sudo apt-get install linux-headers-${kernel_release} build-essential -y $ sudo apt-get install libxml2-dev libxslt1-dev -y # Download from github and compile from sources $ git clone --branch lxml-3.2.4 https://github.com/lxml/lxml $ python2.7 setup.py clean build --with-cython install 

Para ubuntu 12.04 y env virtual:

 sudo apt-get install libxml2-dev libxslt-dev workon some-virt-env pip install lxml 

Intente deshabilitar las optimizaciones del comstackdor de C configurando la variable de entorno FLAGS

 CFLAGS="-O0" pip install lxml 

Eso me resuelve sin la necesidad de más RAM.