web-dev-qa-db-ger.com

Lxml kann nicht auf Mac OS X 10.9 installiert werden

Ich möchte Lxml installieren, damit ich dann Scrapy installieren kann.

Wenn ich meinen Mac heute aktualisiere, kann ich lxml nicht neu installieren, und es wird die folgende Fehlermeldung angezeigt:

In file included from src/lxml/lxml.etree.c:314:
/private/tmp/pip_build_root/lxml/src/lxml/includes/etree_defs.h:9:10: fatal error: 'libxml/xmlversion.h' file not found
#include "libxml/xmlversion.h"
         ^
1 error generated.
error: command 'cc' failed with exit status 1

Ich habe versucht, mit brew libxml2 und libxslt zu installieren. Beide sind in Ordnung, aber ich kann lxml immer noch nicht installieren.

Bei der letzten Installation musste ich die Entwicklertools auf Xcode aktivieren, aber seit dem Update auf Xcode 5 habe ich diese Option nicht mehr.

Weiß jemand, was ich tun muss?

233
David O'Regan

Sie sollten das Befehlszeilentool für xcode installieren oder aktualisieren. Versuchen Sie dies in einem Terminal:

xcode-select --install
499
tinylee

Ich habe dieses Problem in Yosemite gelöst, indem ich libxml2 Und libxslt durch Brauen installiert und verknüpft habe:

brew install libxml2
brew install libxslt
brew link libxml2 --force
brew link libxslt --force

Wenn Sie das Problem mit dieser Methode gelöst haben, es aber zu einem späteren Zeitpunkt erneut angezeigt wird, müssen Sie dies möglicherweise vor den vier obigen Zeilen ausführen:

brew unlink libxml2
brew unlink libxslt

Wenn Sie Berechtigungsfehler mit Homebrew haben, insbesondere auf El Capitan, dies ist ein hilfreiches Dokument . Führen Sie unabhängig von der OS X-Version im Wesentlichen Folgendes aus:

Sudo chown -R $(whoami):admin /usr/local

Sie können Ihr Problem lösen, indem Sie Folgendes in der Befehlszeile ausführen:

 STATIC_DEPS=true pip install lxml

Es hat mir sicher geholfen. Erläuterungen zu docs

100
André Augusto

Ich habe die meisten der oben genannten Lösungen ausprobiert, aber keine davon hat für mich funktioniert. Ich verwende Yosemite 10.10. Die einzige Lösung, die für mich funktioniert hat, war, Folgendes in das Terminal einzugeben:

Sudo CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install lxml

BEARBEITEN: Wenn Sie virtualenv verwenden, wird das Sudo am Anfang nicht benötigt.

48
robinsj

Das hat mich auch eine Weile gestört. Ich kenne die Interna nicht genug über python distutils usw., aber der Include-Pfad hier ist falsch. Ich habe den folgenden hässlichen Hack ausgeführt, um mich festzuhalten, bis die Leute von python lxml die richtige Lösung gefunden haben.

Sudo ln -s  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2/libxml/ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml
24
jdkoftinoff

Global installieren ... OS X 10.9.2

xcode-select --install
Sudo easy_install pip
Sudo CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install lxml
19
Samy Vilar

installationsanleitung auf http://lxml.de/installation.html erklären:

Zur Beschleunigung des Einbaus in Testumgebungen, z. Deaktivieren Sie auf einem Continuous Integration Server die C-Compiler-Optimierungen, indem Sie die Umgebungsvariable CFLAGS festlegen:

CFLAGS="-O0" pip install lxml
12
panchicore

Unter 10.9.2 hat keines der oben genannten Probleme funktioniert, da die Kompilierung mit folgendem Fehler fehlschlägt:

clang: error: unknown argument: '-mno-fused-madd' 

Was tatsächlich zu einer saubersten Lösung führt (siehe mehr Details in [1]):

export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments

pip install lxml

oder folgend bei globaler Installation

Sudo pip install lxml

[1] Clang-Fehler: unbekanntes Argument: '-mno-fused-madd' (Python-Paket-Installationsfehler)

11
okigan
xcode-select --install
Sudo easy_install pip
Sudo pip install lxml
10
RemembranceNN

Ich habe dieses Problem auf Yosemite gelöst, indem ich die folgenden Befehle ausgeführt habe:

xcode-select install #this may take several minutes.
pip install lxml
6
holys

Bei Homebrew ist libxml2 ausgeblendet, um das System libxml2 nicht zu beeinträchtigen. Daher muss pip ein wenig geholfen werden, um es zu finden.

Mit Bash:

LDFLAGS=-L`brew --prefix libxml2`/lib CPPFLAGS=-I`brew --prefix libxml2`/include/libxml2 pip install --user lxml

Mit Fisch:

env LDFLAGS=-L(brew --prefix libxml2)/lib CPPFLAGS=-I(brew --prefix libxml2)/include/libxml2 pip install --user lxml
3
Gaëtan Lehmann

Unglücklicherweise xcode-select --install hat bei mir nicht funktioniert, da ich bereits die neueste version hatte.

Es ist sehr seltsam, aber ich habe das Problem gelöst, indem ich XCode geöffnet und die Allgemeinen Geschäftsbedingungen akzeptiert habe. Erneut ausführen pip install lxml hat nach keine Fehler zurückgegeben.

2
Adam Sheridan

Ich habe alle Antworten auf dieser Seite ausprobiert, keine davon hat für mich funktioniert. Ich verwende OS X Version 10.9.2

Aber das funktioniert definitiv ... wie ein Zauber:

ARCHFLAGS = -Wno-error = unbenutztes-Befehlszeilenargument-harter-Fehler-in-Zukunft-pip install lxml

2
Hexatonic

OSX 10.9.2

Sudo env ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future STATIC_DEPS=true pip install lxml
2
npiv

In meinem Fall muss ich Kaspersky Antivirus beenden vor der Installation von lxml folgendermaßen vorgehen:

pip install lxml
1
Tho

Nach der erfolgreichen Installation von pip (lxml 3.6.4) wurde beim Importieren des Moduls lxml.etree eine Fehlermeldung angezeigt.

Ich habe endlos gesucht, um dies als Voraussetzung für Scrapy zu installieren, und alle Optionen ausprobiert, aber schließlich hat dies für mich funktioniert (Mac OSX 10.11 python 2.7):

$ STATIC_DEPS=true Sudo easy_install-2.7 "lxml==2.3.5"

Die ältere Version von lxml scheint mit dem etree-Modul zu funktionieren.

Pip kann die angegebene Version eines Pakets oft ignorieren, zum Beispiel wenn Sie die neuere Version im Pip-Cache haben, also das easy_install. Das '-2.7' Option ist für python Version, lassen Sie dies aus, wenn Sie für python 3.x installieren.

1

Nach langem Zerreißen der Haare und Zähneknirschen habe ich xcode mit pip deinstalliert und lief:

easy_install lxml

Und alles war gut.

0
duhaime

Dieser Beitrag verweist auf eine Lösung, die für mich funktioniert hat Python3, lxml und "Symbol nicht gefunden: _lzma_auto_decoder" unter Mac OS X 10.9

hth

0
user9869932

fügen Sie vor dem Kompilieren den Pfad zu xmlversion.h in Ihre Umgebung ein.

$ set INCLUDE=$INCLUDE:/private/tmp/pip_build_root/lxml/src/lxml/

Stellen Sie jedoch sicher, dass im angegebenen Pfad die Datei xmlversion.h enthalten ist. Dann,

$ python setup.py install
0
knittledan

pip hat bei mir nicht funktioniert. Ich ging zu https://pypi.python.org/pypi/lxml/2. und lud die macosx .Egg-Datei herunter:

https://pypi.python.org/packages/2.7/l/lxml/lxml-2.3-py2.7-macosx-10.6-intel.Egg#md5=52322e4698d68800c6b6aedb0dbe5f34

Verwenden Sie dann die Befehlszeile easy_install, Um die Datei .Egg Zu installieren.

0
wisbucky

Ich verwende OSX 10.9.2 und erhalte den gleichen Fehler.

Die Installation der XCode-Befehlszeilentools hilft für diese bestimmte OSX-Version nicht.

Ich denke, ein besserer Ansatz, um dies zu beheben, ist die Installation mit dem folgenden Befehl:

$ CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 pip install lxml

Dies ähnelt jdkoftinoff 'fix, ändert jedoch Ihr System nicht dauerhaft.

0
valo

Ich traf die gleiche Frage und löste dieses Problem nach Tagen der Arbeit unter OS X 10.9.4 mit Python 3.4.1.

Hier ist meine Lösung,

Laut lxml installieren von lxml.de,

Ein Macport von lxml ist verfügbar. Versuchen Sie etwas wie port install py25-lxml

Wenn Sie MacPort nicht haben, installieren Sie es von MacPort.org . Es ist sehr leicht. Möglicherweise benötigen Sie auch einen Compiler, um die XCode-Kompilierungswerkzeuge zu installieren. Verwenden Sie xcode-select --install

Zuerst habe ich meinen Port mit Sudo port selfupdate auf die neueste Version aktualisiert.

Dann tippe ich einfach Sudo port install libxml2 und einige Minuten später sollte libxml2 erfolgreich installiert sein. Möglicherweise benötigen Sie auch libxslt, um lxml zu installieren. Verwenden Sie zur Installation von libxslt: Sudo port install libxslt.

Geben Sie jetzt einfach pip install lxml ein, es sollte gut funktionieren.

0
Pisces