web-dev-qa-db-de.com

Wie installiere ich lxml unter OS X Leopard ohne MacPorts oder Fink?

Ich habe es versucht und bin in der Vergangenheit ein paar Mal auf Probleme gestoßen. Hat jemand ein Rezept für die Installation von lxml unter OS X ohne MacPorts oder Fink, das definitiv funktioniert?

Vorzugsweise mit vollständigen 1-2-3 Schritten zum Herunterladen und Erstellen jeder der Abhängigkeiten.

36
Simon Willison

Dank @jessenoller auf Twitter habe ich eine Antwort, die zu meinen Bedürfnissen passt - Sie können Lxml mit statischen Abhängigkeiten kompilieren und vermeiden, die libxml2, die im Lieferumfang von OS X enthalten ist, zu verwirren.

cd /tmp
curl -O http://lxml.de/files/lxml-3.6.0.tgz
tar -xzvf lxml-3.6.0.tgz 
cd lxml-3.6.0
python setup.py build --static-deps --libxml2-version=2.7.3  --libxslt-version=1.1.24 
Sudo python setup.py install
35
Simon Willison

Das hat für mich funktioniert (10.6.8):

Sudo env ARCHFLAGS="-Arch i386 -Arch x86_64" easy_install lxml
33
Andrei

Ich hatte großes Glück mit Homebrew , um die libxml2-Abhängigkeit zu installieren:

brew install libxml2

Homebrew scheint libxslt nicht zur Verfügung zu haben, aber ich habe noch keinen Bedarf an XSLT. YMMV.

Sobald Sie die Abhängigkeit (en) haben, funktionieren die üblichen Methoden gut:

pip install lxml

oder

easy_install lxml
21
David Eyk

Easy_install can funktioniert folgendermaßen:

STATIC_DEPS = true easy_install 'lxml> = 2.2beta4'

sie können then je nach Berechtigungen ausführen.

STATIC_DEPS = true Sudo easy_install 'lxml> = 2.2beta4'

siehe http://muffinresearch.co.uk/archives/2009/03/05/install-lxml-on-osx/

5
Jon

mit Homebrew (0.9.5) auf el capitan (10.11.1) funktionierte folgendes für mich:

brew install libxml2
LD_FLAGS=-L/usr/local/opt/libxml2/lib CPPFLAGS=-I/usr/local/opt/libxml2/include/libxml2 pip install lxml
5
mizerlou

Unter OS X 10.9.1 die vorgeschlagene Antwort während der Installation - Folgende Änderungen mussten vorgenommen werden:

cd /tmp  
curl -o lxml-3.3.0.tgz http://lxml.de/files/lxml-3.3.0.tgz  
tar -xzvf lxml-3.3.0.tgz  
cd lxml-3.3.0  
python setup.py build --static-deps --libxml2-version=2.8.0  --libxslt-version=1.1.24  
Sudo python setup.py install  
3
user785278

Das hat für mich am 10.8.5 funktioniert

  1. Installieren Sie Xcode aus dem Mac App Store
  2. Xcode -> Voreinstellungen -> Downloads -> Befehlszeilen-Tools
  3. Homebrew mit installieren
  4. Ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
  5. brew install libxml2
  6. Sudo easy_install lxml

Dies umfasst Vorschläge von:

Aber ich wollte es zu einer Antwort zusammenfassen, anstatt Kommentare überall zu hinterlassen

3

Ich benutze OSX 10.11 El Capitan und Homebrew. Die Verwendung von pip install lxml würde zu einem schwerwiegenden Fehler führen: "libxml/xmlversion.h" Datei nicht gefunden "und" Fehler mit Fehlercode 1 ", bla bla.

Laut offizielle Website sollte ich STATIC_DEPS=true pip install lxml verwenden (Sudo vor Pip hinzufügen, wenn Sie das brauchen), und das hat mein Problem gelöst.

Ich habe brew install libxml2 und brew install libxslt ausgeführt, um die Abhängigkeiten bei der Fehlerbehebung zu installieren. Ich bin nicht sicher, ob diese beiden Befehle erforderlich sind.

1
feilong

Mit Snow Lepoard funktionierte das einwandfrei, aber nach einem Upgrade auf Lion musste ich gcc-4.2 mit gcc verbinden. Sudo env laufen ARCHFLAGS = "- Arch i386 -Arch x86_64" easy_install lxml suchte nach gcc-4.2 anstelle von gcc.

1
chuckles

Das hat in der Vergangenheit für mich funktioniert installiere lxml auf osx

1
muffinresearch

So installieren Sie mit aktuellen Versionen von libxml2 und libxslt: 

ARCHFLAGS="-Arch i386 -Arch x86_64" STATIC_DEPS=true pip install lxml

So installieren Sie bestimmte Versionen von Bibliotheken:

ARCHFLAGS="-Arch i386 -Arch x86_64" STATIC_DEPS=true LIBXML2_VERSION=2.7.3 LIBXSLT_VERSION=1.1.24 pip install lxml

CentOS 64 Bit (etwas abgelehnt, aber schwer gewonnen): 

CFLAGS=-fPIC STATIC_DEPS=true pip install lxml

oder 

CFLAGS=-fPIC STATIC_DEPS=true LIBXML2_VERSION=2.7.3 LIBXSLT_VERSION=1.1.24 pip install lxml
0
m.kocikowski

Versuchen Sie, Cython und die Installation aus dem Quellcode zu installieren, easy_install schlägt fehl. Ich habe es noch nicht auf meinem Mac probiert.

Andernfalls ist die Port-Version nicht so alt. Sie können die Abhängigkeiten sehen, von denen einige für meinen Linux-Build von lxml aktualisiert werden mussten.

info py25-lxml py25-lxml @ 2.1.5 (Python, Entwicklung)

lxml ist eine Pythonic-Bindung für die Bibliotheken libxml2 und libxslt. Es ist einzigartig , Da es die Geschwindigkeit und die Vollständigkeit der Funktionen dieser Bibliotheken mit der Der Einfachheit einer nativen Python-API kombiniert, die meist kompatibel ist, aber der Bekannten ElementTree-API überlegen ist . Homepage: http://codespeak.net/lxml/

Abhängigkeiten der Bibliothek: python25, libxml2, libxslt, py25-hashlib, py25-setuptools, Py25-zlib Plattformen: Darwin Betreuer: [email protected] [email protected]

0
Nick Martin
0
Ross

Eine veraltete 10.6.8 os x war sehr schmerzhaft, aber hier geht es um jeden, der Snow Leopard verwendet! 

Zuerst müssen Sie eine andere Version von libxml2 als Homebrew installieren und --with-python installieren. Sie können dies tun, indem Sie die folgenden Befehle eingeben.

brew update
brew edit libxml2

Suchen Sie dann die Zeile "--without-python" und wechseln Sie zu "--with-python". 

system "./configure", "--disable-dependency-tracking",
                      "--prefix=#{prefix}",
                      "--with-python"

Jetzt können Sie libxml2 installieren.

brew install libxml2

Überprüfen Sie als Nächstes Ihre neue Installation von libxml2 am Standardspeicherort der Homebrew. Sie möchten die libxml2-Konfiguration finden.

IHRE KÖNNEN UNTERSCHIEDLICH SEIN:

"/ usr/local/Cellar/libxml2/VERSION_/bin/xml2-config"

Verwenden Sie nun den folgenden Befehl, um lxml mit pip mit der neu installierten libxml2-Konfiguration und nicht mit der Mac OS X-Version zu installieren. 

ARCHFLAGS="-Arch i386 -Arch x86_64" pip install lxml --install-option="--with-xml2-config=/usr/local/Cellar/libxml2/2.9.1/bin/xml2-config"

Arbeitete für mich an meinem 10.6.8 Python 2.6. Vielen Dank. 

Gutschrift geht auf diese Seite, um mir pip --install-option zu zeigen ... 

 http://natanyellin.com/page/4/

0
ganicus

lxml ist enthalten im Repository von pypm :

$ pypm install lxml
0