web-dev-qa-db-fra.com

Comment installer lxml sur OS X Leopard sans utiliser MacPorts ou Fink?

J'ai essayé cela et rencontré des problèmes plusieurs fois dans le passé. Quelqu'un at-il une recette pour installer LXML sur OS X sans MacPorts ou Fink qui fonctionne vraiment?

De préférence avec les étapes complètes 1-2-3 pour télécharger et construire chacune des dépendances.

36
Simon Willison

Grâce à @jessenoller on Twitter, ma réponse correspond à mes besoins: vous pouvez compiler LXML avec des dépendances statiques, évitant ainsi de jouer avec la libxml2 fournie avec OS X. Voici ce qui a fonctionné pour moi:

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

Cela a fonctionné pour moi (10.6.8):

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

J'ai eu une excellente chance avec Homebrew pour installer la dépendance libxml2:

brew install libxml2

Il semble que __ Homebrew ne dispose pas de libxslt, mais je n'ai pas encore eu besoin de XSLT. YMMV.

Une fois que vous avez la ou les dépendances, les méthodes habituelles fonctionnent parfaitement:

pip install lxml

ou

easy_install lxml
21
David Eyk

Easy_install can fonctionne en utilisant ceci:

STATIC_DEPS = true easy_install 'lxml> = 2.2beta4'

vous pouvez then / besoin d'exécuter, en fonction des autorisations;

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

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

5
Jon

en utilisant homebrew (0.9.5) sur el capitan (10.11.1), ce qui suit a fonctionné pour moi:

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

Sous OS X 10.9.1 la réponse suggérée ci-dessus présente des erreurs lors de l'installation - les modifications suivantes ont dû être apportées:

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

Cela a fonctionné pour moi le 10.8.5

  1. Installer Xcode depuis le Mac App Store
  2. Xcode -> Préférences -> Téléchargements -> Outils de ligne de commande
  3. Installez homebrew en utilisant
  4. Ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
  5. brew install libxml2
  6. Sudo easy_install lxml

Cela comprend des suggestions de:

Mais je voulais le compiler en une seule réponse plutôt que de laisser des commentaires partout

3
William Entriken

J'utilise OSX 10.11 El Capitan et Homebrew. Utiliser pip install lxml me donnerait une "erreur fatale: fichier 'libxml/xmlversion.h' introuvable" et "échec avec le code d'erreur 1" blah blah.

Selon le site officiel , je devrais utiliser STATIC_DEPS=true pip install lxml (ajoutez Sudo avant pip si vous en avez besoin), et cela a résolu mon problème.

J'ai exécuté brew install libxml2 et brew install libxslt pour installer les dépendances lors du dépannage. Je ne suis pas sûr si ces deux commandes sont nécessaires.

1
feilong

Je fonctionnais très bien avec Snow Lepoard, mais après être passé à Lion, je devais faire un lien symbolique entre gcc-4.2 et gcc. Lancer Sudo env ARCHFLAGS = "- Archiver i386 - Archiver x86_64" easy_install lxml recherchait gcc-4.2 au lieu de gcc.

1
chuckles

Cela a fonctionné pour moi dans le passé installer lxml sur osx

1
muffinresearch

Pour installer avec les versions à jour de libxml2 et libxslt: 

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

Pour installer avec des versions spécifiques de bibliothèques:

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

CentOS 64 bits (question un peu décalée, mais durement gagnée): 

CFLAGS=-fPIC STATIC_DEPS=true pip install lxml

ou 

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

Essayez d’installer Cython et à partir du code source, easy_install échouera. Je n'ai pas encore essayé mon mac.

Faute de quoi, la version des ports n’est pas si ancienne. Vous pouvez voir les dépendances, dont certaines ont dû être mises à jour pour ma version Linux de lxml.

info py25-lxml py25-lxml @ 2.1.5 (python, devel)

lxml est une liaison Pythonic pour les bibliothèques libxml2 et libxslt. Il est unique En ce qu'il combine la vitesse et l'exhaustivité des fonctionnalités de ces bibliothèques avec La simplicité d'une API Python native, généralement compatible mais supérieure à l'API ElementTree bien connue . . Page d'accueil: http://codespeak.net/lxml/

Dépendances de la bibliothèque: python25, libxml2, libxslt, py25-hashlib, py25-setuptools, Py25-zlib Plateformes: darwin Mainteneurs: [email protected] [email protected]

0
Nick Martin
0
Ross

Une version obsolète de la version 10.6.8 os x a été très pénible, mais les utilisateurs de Snow Leopard sont désormais pris en charge! 

Vous devez d’abord installer une version différente de libxml2 de homebrew et installer --with-python. Vous pouvez le faire en tapant les commandes suivantes.

brew update
brew edit libxml2

Recherchez ensuite la ligne "--without-python" et remplacez-la par "--with-python". 

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

Vous pouvez maintenant installer libxml2.

brew install libxml2

Vérifiez ensuite votre nouvelle installation de libxml2 à l’emplacement homebrew par défaut. Vous voulez trouver la config libxml2.

LE VÔTRE PEUT ÊTRE DIFFÉRENT:

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

Maintenant, utilisez la commande suivante pour installer lxml avec pip en utilisant la configuration libxml2 nouvellement installée et non la version Mac OS X. 

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

Travaillé pour moi sur mon 10.6.8 Python 2.6. Merci. 

Le crédit va à cette page pour me montrer pip --install-option ... 

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

0
ganicus

lxml est inclus dans le répertoire pypm :

$ pypm install lxml
0