Installieren von lxml mit Pip in virtualenv Ubuntu 12.10 Fehler: Befehl 'gcc' fehlgeschlagen mit Exit Status 4

Ich habe den folgenden Fehler beim Versuch, "Pip installieren lxml" in ein virtualenv in Ubuntu 12.10 x64 laufen. Ich habe Python 2.7.

Ich habe andere Fragen hier über das gleiche Problem gesehen und versucht, python-dev, libxml2-dev und libxslt1-dev zu installieren.

Bitte schau mal den Rückblick an, sobald ich den Befehl an den Moment tippe, in dem der Fehler auftritt.

 Laden / Auspacken von lxml
   Ausführen von setup.py egg_info für Paket lxml
     /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unbekannte Verteilungsoption: 'bugtrack_url'
       Warnings.warn (msg)
     Gebäude lxml Version 3.1.2.
     Gebäude ohne Cython.
     Verwenden der Build-Konfiguration von libxslt 1.1.26
     Aufbau gegen libxml2 / libxslt im folgenden Verzeichnis: / usr / lib

     Warnung: Keine Dateien gefunden '* .txt' unter Verzeichnis 'src / lxml / tests'
 Installieren von gesammelten Paketen: lxml
   Ausführen von setup.py installieren für lxml
     /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unbekannte Verteilungsoption: 'bugtrack_url'
       Warnings.warn (msg)
     Gebäude lxml Version 3.1.2.
     Gebäude ohne Cython.
     Verwenden der Build-Konfiguration von libxslt 1.1.26
     Aufbau gegen libxml2 / libxslt im folgenden Verzeichnis: / usr / lib
     Gebäude 'lxml.etree' Erweiterung
     Gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wand -Wstrict-Prototypen -fPIC -I / usr / include / libxml2 -I / home / admin / .virtualenvs / dev.actualito.com / build / Lxml / src / lxml / enthält -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: In der Funktion '__pyx_f_4lxml_5etree__getFilenameForFile':
     Src / lxml / lxml.etree.c: 26851: 7: Warnung: Variable '__pyx_clineno' gesetzt, aber nicht verwendet [-Wunused-but-set-variable]
     Src / lxml / lxml.etree.c: 26850: 15: Warnung: Variable '__pyx_filename' gesetzt, aber nicht verwendet [-Wunused-but-set-variable]
     Src / lxml / lxml.etree.c: 26849: 7: Warnung: Variable '__pyx_lineno' gesetzt, aber nicht verwendet [-Wunused-but-set-variable]
     Src / lxml / lxml.etree.c: In der Funktion '__pyx_pf_4lxml_5etree_4XSLT_18__call__':
     Src / lxml / lxml.etree.c: 138273: 81: Warnung: Übergeben des Arguments 1 von '__pyx_f_4lxml_5etree_12_XSLTContext__copy' aus dem inkompatiblen Zeigertyp [standardmäßig aktiviert]
     Src / lxml / lxml.etree.c: 136229: 52: note: erwartet 'struct __pyx_obj_4lxml_5etree__XSLTContext *' aber Argument ist vom Typ 'struct __pyx_obj_4lxml_5etree__BaseContext *'
     Src / lxml / lxml.etree.c: In der Funktion '__pyx_f_4lxml_5etree__copyXSLT':
     Src / lxml / lxml.etree.c: 139667: 79: Warnung: Übergeben des Arguments 1 von '__pyx_f_4lxml_5etree_12_XSLTContext__copy' aus dem inkompatiblen Zeigertyp [standardmäßig aktiviert]
     Src / lxml / lxml.etree.c: 136229: 52: note: erwartet 'struct __pyx_obj_4lxml_5etree__XSLTContext *' aber Argument ist vom Typ 'struct __pyx_obj_4lxml_5etree__BaseContext *'
     Src / lxml / lxml.etree.c: Auf oberster Ebene:
     Src / lxml / lxml.etree.c: 12384: 13: Warnung: '__pyx_f_4lxml_5etree_displayNode' definiert aber nicht verwendet [-Wunused-Funktion]
     Gcc: interner Compilerfehler: getötet (Programm cc1)
     Bitte senden Sie einen vollständigen Fehlerbericht,
     Ggf. mit vorverarbeiteter Quelle
     Siehe Anleitung.
     Fehler: Befehl 'gcc' fehlgeschlagen mit Exit Status 4
     Komplette Ausgabe vom Befehl /home/admin/.virtualenvs/dev.actualito.com/bin/python -c "import setuptools; __ file __ = '/ home / admin / .virtualenvs / dev.actualito.com / build / lxml / setup. ('\ R \ n', '\ n'), __file__, 'exec')) "install --record / tmp / pip-asDtN5- Record / install-record.txt --single-version-extern-managed -install-headers /home/admin/.virtualenvs/dev.actualito.com/include/site/python2.7:
     /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unbekannte Verteilungsoption: 'bugtrack_url'

   Warnings.warn (msg)

 Gebäude lxml Version 3.1.2.

 Gebäude ohne Cython.

 Verwenden der Build-Konfiguration von libxslt 1.1.26

 Aufbau gegen libxml2 / libxslt im folgenden Verzeichnis: / usr / lib

 Laufende Installation

 Laufen bauen

 Läuft build_py

 Kopieren src / lxml / enthält / lxml-version.h -> build / lib.linux-x86_64-2.7 / lxml / enthält

 Running build_ext ausführen

 Gebäude 'lxml.etree' Erweiterung

 Gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wand -Wstrict-Prototypen -fPIC -I / usr / include / libxml2 -I / home / admin / .virtualenvs / dev.actualito.com / build / Lxml / src / lxml / enthält -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: In der Funktion '__pyx_f_4lxml_5etree__getFilenameForFile':

 Src / lxml / lxml.etree.c: 26851: 7: Warnung: Variable '__pyx_clineno' gesetzt, aber nicht verwendet [-Wunused-but-set-variable]

 Src / lxml / lxml.etree.c: 26850: 15: Warnung: Variable '__pyx_filename' gesetzt, aber nicht verwendet [-Wunused-but-set-variable]

 Src / lxml / lxml.etree.c: 26849: 7: Warnung: Variable '__pyx_lineno' gesetzt, aber nicht verwendet [-Wunused-but-set-variable]

 Src / lxml / lxml.etree.c: In der Funktion '__pyx_pf_4lxml_5etree_4XSLT_18__call__':

 Src / lxml / lxml.etree.c: 138273: 81: Warnung: Übergeben des Arguments 1 von '__pyx_f_4lxml_5etree_12_XSLTContext__copy' aus dem inkompatiblen Zeigertyp [standardmäßig aktiviert]

 Src / lxml / lxml.etree.c: 136229: 52: note: erwartet 'struct __pyx_obj_4lxml_5etree__XSLTContext *' aber Argument ist vom Typ 'struct __pyx_obj_4lxml_5etree__BaseContext *'

 Src / lxml / lxml.etree.c: In der Funktion '__pyx_f_4lxml_5etree__copyXSLT':

 Src / lxml / lxml.etree.c: 139667: 79: Warnung: Übergeben des Arguments 1 von '__pyx_f_4lxml_5etree_12_XSLTContext__copy' aus dem inkompatiblen Zeigertyp [standardmäßig aktiviert]

 Src / lxml / lxml.etree.c: 136229: 52: note: erwartet 'struct __pyx_obj_4lxml_5etree__XSLTContext *' aber Argument ist vom Typ 'struct __pyx_obj_4lxml_5etree__BaseContext *'

 Src / lxml / lxml.etree.c: Auf oberster Ebene:

 Src / lxml / lxml.etree.c: 12384: 13: Warnung: '__pyx_f_4lxml_5etree_displayNode' definiert aber nicht verwendet [-Wunused-Funktion]

 Gcc: interner Compilerfehler: getötet (Programm cc1)

 Bitte senden Sie einen vollständigen Fehlerbericht,

 Ggf. mit vorverarbeiteter Quelle

 Siehe Anleitung.

 Fehler: Befehl 'gcc' fehlgeschlagen mit Exit Status 4

 ----------------------------------------
 Befehl /home/admin/.virtualenvs/dev.actualito.com/bin/python -c "import setuptools; __ file __ = '/ home / admin / .virtualenvs / dev.actualito.com / build / lxml / setup.py'; Exec (kompilieren (öffnen (__ Datei __) lesen () \ r \ n ',' \ n '), __file__,' exec ')) "install --record / tmp / pip-asDtN5-record / install -record.txt --einfach-version-extern-verwaltet --install-header /home/admin/.virtualenvs/dev.actualito.com/include/site/python2.7 fehlgeschlagen mit Fehlercode 1 in / home / admin / .virtualenvs / dev.actualito.com / build / lxml
 Speichern des vollständigen logs /home/admin/.pip/pip.log

7 Solutions collect form web for “Installieren von lxml mit Pip in virtualenv Ubuntu 12.10 Fehler: Befehl 'gcc' fehlgeschlagen mit Exit Status 4”

Hier ist die gespeicherte Notiz.

 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 

Es hat für meine Ubuntu 12.10 gearbeitet

Stellen Sie sicher, dass Sie genug Speicher haben. Versuche dmesg | tail dmesg | tail zu sehen, ob es so etwas ausgibt:

 ... [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 

Nach lxml Seite können Sie diese Konstruktion verwenden:

 CFLAGS="-O0" pip install lxml 

Installationsanleitung

Hinweis für diejenigen, die global installieren: Der richtige Weg, um Umgebungsvariablen mit sudo passieren ist nach sudo :

 sudo CFLAGS="-O0" pip install lxml 

Ich traf die ähnliche Frage (Fehler: Befehl 'gcc' fehlgeschlagen mit Exit Status 4) an diesem Morgen. Es scheint, dass Sie das Gedächtnis Ihrer Maschine überprüfen müssen. Wenn der Speicher niedriger als 512M ist, kann das die Ursache sein. Versuchen Sie, einige Dienste vorübergehend zu schließen, wie Apache-Server, und versuchen Sie "Pip installieren lxml" wieder. Es ist vielleicht Arbeit!

Ich bin mit dieser Mühe ein paar Mal gestolpert.

Kurze Antwort

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

Lange Antwort

Die Hypothese ist, dass pip install lxml sollte in jeder Umgebung arbeiten, egal ob Sie Python2 oder Python3 verwenden.

Es gibt auch Cython zu berücksichtigen: Sie werden sicherlich genießen lxml kompiliert mit Cython aufgrund der relevanten Performance-Gewinne.

Aus unbekannten Gründen findet die Kompilation auf Python2 kein Cython. Um genauer und absolut explizit über diese Angelegenheit, beide Befehle unten NICHT beschäftigen Cython:

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

Also, wenn du Python2 benutzt hast, hast du nur eine Alternative, soweit ich weiß, was ist: aus Quellen zu übersetzen, 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 

Für ubuntu 12.04 und virtuell env:

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

Versuchen Sie, die C-Compiler-Optimierungen zu deaktivieren, indem Sie die FLAGS-Umgebungsvariable setzen

 CFLAGS="-O0" pip install lxml 

Das löst für mich ohne die Notwendigkeit von mehr RAM

  • Python, lxml und xpath - html Tabellenanalyse
  • Wie lxml neu installieren?
  • Fehler beim Installieren von lxml mit Pip
  • Elemente nach Attribut mit lxml finden
  • Extrahieren von lxml xpath für html table
  • Wie kann diese Funktion umgeschrieben werden, um OrderedDict zu implementieren?
  • Wertattribut für lxml.html
  • Speichern eines 'lxml.etree._ElementTree' Objekts
  • Python ist die beste Programmiersprache der Welt.