Estoy teniendo el siguiente error al intentar ejecutar «pip install lxml» en un virtualenv en Ubuntu 12.10 x64. Tengo Python 2.7.

He visto otros relacionados con las preguntas aquí sobre el mismo problema y trató de instalar python-dev, libxml2-dev y libxslt1-dev.

Por favor, tome un aspecto de la traza desde el momento en que la punta de la orden para que el momento cuando se produce el error.

Descargar/desembalaje lxml 
Ejecución setup.py egg_info para el paquete de lxml 
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Desconocido opción de distribución: 'bugtrack_url' 
las advertencias.warn(msg) 
La construcción de lxml la versión 3.1.2. 
Edificio sin Cython. 
El uso de configuración de generación de libxslt 1.1.26 
Edificio contra libxml2/libxslt en el siguiente directorio: /usr/lib 

advertencia: no hay archivos encontrados que coinciden con"*.txt' en el directorio 'src/lxml/pruebas' 
La instalación de recogida de paquetes: lxml 
Ejecución setup.py instalar para lxml 
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Desconocido opción de distribución: 'bugtrack_url' 
las advertencias.warn(msg) 
La construcción de lxml la versión 3.1.2. 
Edificio sin Cython. 
El uso de configuración de generación de libxslt 1.1.26 
Edificio contra libxml2/libxslt en el siguiente directorio: /usr/lib 
edificio " lxml.etree' extensión 
gcc-pthread -fno-estricto-aliasing -DNDEBUG -g -fwrapv -O2 -Pared -Wstrict-prototipos -fPIC-I/usr/include/libxml2 -I/home/admin/.virtualenvs/dev.actualito.com/build/lxml/src/lxml/incluye -I/usr/include/python2.7 -c src/lxml/lxml.etree.c-o construir/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' set, pero no se usa [-Wunused-pero-set-variable] 
src/lxml/lxml.etree.c:26850:15: advertencia: variable '__pyx_nombre de archivo' set, pero no se usa [-Wunused-pero-set-variable] 
src/lxml/lxml.etree.c:26849:7: advertencia: variable '__pyx_lineno' set, pero no se usa [-Wunused-pero-set-variable] 
src/lxml/lxml.etree.c: En la función '__pyx_pf_4lxml_5etree_4XSLT_18__llamada__': 
src/lxml/lxml.etree.c:138273:81: advertencia: pasar argumento 1 de '__pyx_f_4lxml_5etree_12_XSLTContext__copia " de incompatible tipo de puntero [activado por defecto] 
src/lxml/lxml.etree.c:136229:52: nota: se esperaba '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: pasar argumento 1 de '__pyx_f_4lxml_5etree_12_XSLTContext__copia " de incompatible tipo de puntero [activado por defecto] 
src/lxml/lxml.etree.c:136229:52: nota: se esperaba '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 se utiliza [-Wunused-función] 
gcc: error interno del compilador: Muerto (programa cc1) 
Por favor, presentar un informe de error, 
con preprocesado de origen, si procede. 
Consulte para obtener instrucciones. 
error: el comando 'gcc' no pudo con el estado de salida de 4 
Salida completa de 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(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --registro /tmp/pip-asDtN5-record/install-record.txt --solo-versión-gestionado externamente --install-encabezados /home/admin/.virtualenvs/dev.actualito.com/include/sitio/python2.7: 
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Desconocido opción de distribución: 'bugtrack_url' 

las advertencias.warn(msg) 

La construcción de lxml la versión 3.1.2. 

Edificio sin Cython. 

El uso de configuración de generación de libxslt 1.1.26 

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

ejecución de instalar 

ejecuta la generación 

ejecución de build_py 

copia src/lxml/includes/lxml-versión.h -> construir/lib.linux-x86_64-2.7/lxml/incluye 

ejecución de build_ext 

edificio " lxml.etree' extensión 

gcc-pthread -fno-estricto-aliasing -DNDEBUG -g -fwrapv -O2 -Pared -Wstrict-prototipos -fPIC-I/usr/include/libxml2 -I/home/admin/.virtualenvs/dev.actualito.com/build/lxml/src/lxml/incluye -I/usr/include/python2.7 -c src/lxml/lxml.etree.c-o construir/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' set, pero no se usa [-Wunused-pero-set-variable] 

src/lxml/lxml.etree.c:26850:15: advertencia: variable '__pyx_nombre de archivo' set, pero no se usa [-Wunused-pero-set-variable] 

src/lxml/lxml.etree.c:26849:7: advertencia: variable '__pyx_lineno' set, pero no se usa [-Wunused-pero-set-variable] 

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

src/lxml/lxml.etree.c:138273:81: advertencia: pasar argumento 1 de '__pyx_f_4lxml_5etree_12_XSLTContext__copia " de incompatible tipo de puntero [activado por defecto] 

src/lxml/lxml.etree.c:136229:52: nota: se esperaba '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: pasar argumento 1 de '__pyx_f_4lxml_5etree_12_XSLTContext__copia " de incompatible tipo de puntero [activado por defecto] 

src/lxml/lxml.etree.c:136229:52: nota: se esperaba '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 se utiliza [-Wunused-función] 

gcc: error interno del compilador: Muerto (programa cc1) 

Por favor, presentar un informe de error, 

con preprocesado de origen, si procede. 

Consulte para obtener instrucciones. 

error: el comando 'gcc' no pudo con el estado de salida de 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(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --registro /tmp/pip-asDtN5-record/install-record.txt --solo-versión-gestionado externamente --install-encabezados /home/admin/.virtualenvs/dev.actualito.com/include/sitio/python2.7 error con el código 1 en /home/admin/.virtualenvs/dev.actualito.com/build/lxml 
Almacenamiento de registro completo en /home/admin/.pip/pip.registro de 
  • ¿Tienes build-essential instalado?
  • Sí, acabo de ejecutar este comando: sudo aptitude install build-essential, hay un problema que hacerlo después de las otras cosas?
  • Fácil de comprobar – pip uninstall lxml luego pip install lxml para ver si el resultado es diferente. Creo que va a ser.
  • He vuelto a instalar python-dev, libxml2-dev y libxslt1-dev bibliotecas con sudo y apt-get remove –purge, lo intentó de nuevo pip install lxml en el virtualenv pero el código de error es el mismo que antes.
  • Me temo que estoy perplejo entonces, lo siento.
  • En mi caso, necesito libxslt1-dev. Utilice este comando : sudo apt-get install libxml2-dev libxslt1-dev python-dev
  • Para los no usuarios de debian (es decir, Red Hat, CentOS) yum install python-devel, libxml2-devel, libxslt-devel … el ‘dev’ paquetes de convertirse en «devel’

7 Comentarios

  1. 25

    Aquí es el de mi guarda la nota.

    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

    Se ha trabajado para mi ubuntu 12.10

    • No funcionó al principio, pero he eludido el problema. He descubierto que, por alguna razón, se está recogiendo easy_install de sistema de paquetes instalados. Así que, si me quedo easy_install explícitamente de mi versión de Python compilado de fuentes, funciona 🙂 Por ejemplo: «/opt//python 2.7.5/bin/easy_install lxml»
    • easy_install vs pip install hizo el truco, para mi ubuntu 13.10 & python 2.7. Gracias!
    • Me he tropezado con el mismo problema de nuevo. Esta vez con Python3. Luego me he decidido a escribir una respuesta completa acerca de esto.
    • He encontrado el siguiente suficiente: apt-get install libxml2-dev libxslt1-dev python-dev
    • hecho de todo, todavía se produce un error con este mensaje : /usr/bin/ld: cannot find -lz , por favor ayuda!
    • Esta solucionado mi problema: stackoverflow.com/questions/3373995/usr-bin-ld-cannot-find-lz
    • gracias @HereHere! yo ya había quitado lxml de dependencia y se procedió con una alternativa, pero gracias de todos modos, sería útil en el futuro

  2. 73

    Asegúrese de que tiene suficiente memoria. Trate de dmesg | tail para ver si genera algo así 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
    • Esto me pasó a mí. ¿Qué debo hacer? No creo que me puede conseguir más memoria – es un VPS.
    • como solución se puede instalar python-lxml paquete desde los repositorios oficiales de ubuntu y tiene su virtualenv creado con el --system-site-packages interruptor.
    • de este modo post puede ayudar si usted necesita más memoria
    • Usted puede agregar en el archivo de la memoria de intercambio o swap. Ver este enlace
    • Yo tenía el mismo problema con lxml la construcción de una ventana acoplable contenedor en AWS EB. Uno de los más solución: no construir en la nube, construir locales y empujar a un repositorio (podría ser Docker Hub, AWS Registro, …) y el uso ya horneado de la imagen.
    • He encontrado información sobre la creación de un gran archivo de intercambio en la respuesta aquí, y la información sobre temporalmente de cambio de tamaño (que yo no tenga que hacer) aquí. Gracias!

  3. 18

    De acuerdo con lxml sitio, usted puede utilizar este tipo de construcción:

    CFLAGS="-O0"  pip install lxml

    guía de instalación

    Nota para aquellos instalación de todo el mundo: La forma correcta de pasar las variables de entorno con sudo es después de sudo:

    sudo CFLAGS="-O0" pip install lxml
    • Este trabajó para mí en Ubuntu 12.04.5
    • También trabajó en RedHat 4.8 para mí
    • Esto funcionó para mí en Ubuntu 14.04 como un encanto, incluso con poca memoria ram (512MB), gracias.
    • Trabajó para mí, no veo esta respuesta antes de publicar el mío
    • Trabajó Ubuntu 14.04. Debe ser aceptado.
    • Esto no funciona para mí en la versión de Fedora 23
    • trabajó en centos 5 en aws instancias micro
    • Trabajó en ubuntu 16.04
    • Hizo el truco en Pi Cero W con Raspbian Tramo Lite!

  4. 8

    Conocí a la pregunta similar(error: comando ‘gcc’ no pudo con el estado de salida 4) esta mañana. Parece que es necesario comprobar la memoria de su equipo. Si la memoria es inferior a 512 MB,que puede ser la causa.Intenta cerrar algunos servicios de forma temporal,como un servidor apache,y tratar de «pip install lxml» de nuevo.Es tal vez la obra!

    • El aumento de la memoria hizo el truco! Yo era la implementación de una aplicación Django en un DigitalOcean dokku gota con 512 mb de RAM y estaba recibiendo error: command 'gcc' failed with exit status 4. Cambiar el tamaño de la gota de tener 1GB de RAM resuelto el problema.
  5. 3

    He tropezado 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 cualquier ambiente, sin importar si usted está utilizando Python2 o Python3.

    También hay Cython a tener en cuenta: podrá disfrutar de lxml compilado con Cython debido a las pertinentes mejoras en el rendimiento.

    Por razones desconocidas para mí, la compilación en Python2 no encontrar Cython.
    Para ser más preciso y absolutamente explícito acerca de esta materia, tanto de los comandos que aparecen a continuación NO emplear Cython:

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

    Así, cuando se utilizan Python2 sólo tiene una alternativa, como yo sé, que es: compilar desde las fuentes, Lucas!

    # 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
  6. 2

    Para ubuntu 12.04 y virtual env:

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

    Pruebe a deshabilitar el compilador de C optimizaciones de configuración de los INDICADORES de la variable de entorno

    CFLAGS="-O0"  pip install lxml 

    Que resuelve para mí, sin la necesidad de más memoria RAM

    • Gracias! Tus consejos me ayuda a resolver problemas de AWS micro instancia.

Dejar respuesta

Please enter your comment!
Please enter your name here