web-dev-qa-db-fra.com

Impossible d'installer Lxml sur Mac OS X 10.9

Je veux installer Lxml pour pouvoir ensuite installer Scrapy.

Lorsque j'ai mis à jour mon Mac aujourd'hui, il ne m'a pas permis de réinstaller lxml, le message d'erreur suivant s'affiche:

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

J'ai essayé d'utiliser brew pour installer libxml2 et libxslt, les deux bien installés mais je ne peux toujours pas installer lxml.

La dernière fois que j’avais installé, j’avais besoin d’activer les outils de développement sur Xcode mais depuis sa mise à jour vers Xcode 5, cette option ne m’est plus offerte.

Est-ce que quelqu'un sait ce que je dois faire?

233
David O'Regan

Vous devez installer ou mettre à niveau l'outil de ligne de commande pour xcode. Essayez ceci dans un terminal:

xcode-select --install
499
tinylee

J'ai résolu ce problème sur Yosemite en installant et en reliant libxml2 et libxslt par le biais d'une infusion:

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

Si vous avez résolu le problème à l'aide de cette méthode mais que celle-ci réapparaît ultérieurement, vous devrez peut-être exécuter cette opération avant les quatre lignes ci-dessus:

brew unlink libxml2
brew unlink libxslt

Si vous rencontrez des erreurs d'autorisation avec Homebrew, en particulier sur El Capitan, document utile . Essentiellement, quelle que soit la version d’OS X, essayez d’exécuter:

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

Vous pouvez résoudre votre problème en exécutant ceci sur la ligne de commande:

 STATIC_DEPS=true pip install lxml

Cela m'a certainement aidé. Explications sur docs

100
André Augusto

J'ai essayé la plupart des solutions ci-dessus, mais aucune d'entre elles n'a fonctionné pour moi. J'utilise Yosemite 10.10, la seule solution qui a fonctionné pour moi a été de taper ceci dans le terminal:

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

EDIT: Si vous utilisez virtualenv, le démarrage de Sudo n’est pas nécessaire.

48
robinsj

Cela me dérange aussi depuis un moment. Je ne connais pas suffisamment les éléments internes de python distutils, etc., mais le chemin d'inclusion est incorrect. J'ai fait le piratage laid suivant pour me retenir jusqu'à ce que les personnes python lxml puissent faire le correct correctif.

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

Installation globale ... 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

les instructions d'installation sur http://lxml.de/installation.html expliquent:

Pour accélérer la création d’environnements de test, par exemple, sur un serveur d'intégration continue, désactivez les optimisations du compilateur C en définissant la variable d'environnement CFLAGS:

CFLAGS="-O0" pip install lxml
12
panchicore

Aucune de ce qui précède n'a fonctionné pour moi le 10.9.2, car la compilation a échoué avec l'erreur suivante:

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

Ce qui conduit réellement à la solution la plus propre (voir plus de détails dans [1]):

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

pip install lxml

ou suivants si vous installez globalement

Sudo pip install lxml

[1] erreur clang: argument inconnu: '-mno-fused-madd' (échec de l'installation du package python)

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

J'ai résolu ce problème sur Yosemite en exécutant les commandes suivantes:

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

Avec homebrew, libxml2 est masqué pour ne pas interférer avec le système libxml2, aussi pip doit être un peu aidé pour le trouver.

Avec bash:

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

Avec du poisson:

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

Malheureusement, xcode-select --install n'a pas fonctionné pour moi car j'avais déjà la dernière version.

C'est très étrange, mais j'ai résolu le problème en ouvrant XCode et en acceptant les conditions d'utilisation. La réexécution de pip install lxml n'a renvoyé aucune erreur après.

2
Adam Sheridan

J'ai essayé toutes les réponses sur cette page, aucune d'entre elles n'a fonctionné pour moi. J'utilise OS X version 10.9.2

Mais cela fonctionne vraiment .... comme un charme:

ARCHFLAGS = -Wno-error = installation-de-pipeau-de-ligne-de-commande-non-utilisée-in-future installée 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

Dans mon cas, je dois arrêter Kaspersky Antivirus avant d'installer LXML par:

pip install lxml
1
Tho

Après une installation réussie à partir de pip (lxml 3.6.4), une erreur s’est produite lors de l’importation du module lxml.etree.

Je cherchais sans cesse à installer ceci comme condition requise pour Scrapy, et j'ai essayé toutes les options, mais finalement cela a fonctionné pour moi (mac osx 10.11 python 2.7):

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

L'ancienne version de lxml semble fonctionner avec le module etree.

Pip peut souvent ignorer la version spécifiée d'un package, par exemple, lorsque vous avez la version la plus récente dans le cache pip, d'où le easy_install. L'option '-2.7' concerne la version python, omettez-la si vous effectuez l'installation pour python 3.x.

1
Ryszard Cetnarski

Après avoir beaucoup déchiré les cheveux et grincé des dents, j'ai désinstallé xcode avec pip et j'ai couru:

easy_install lxml

Et tout allait bien.

0
duhaime

Cet article est lié à une solution qui fonctionnait pour moi Python3, lxml et "Symbole introuvable: _lzma_auto_decoder" sur Mac OS X 10.9

hth

0
user9869932

avant de compiler, ajoutez le chemin d’accès à xmlversion.h dans votre environnement.

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

Mais assurez-vous que le chemin que j'ai fourni contient le fichier xmlversion.h situé à l'intérieur. Ensuite,

$ python setup.py install
0
knittledan

pip n'a pas fonctionné pour moi. Je suis allé à https://pypi.python.org/pypi/lxml/2. et j'ai téléchargé le fichier .gg de macosx:

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

Ensuite, utilisez la ligne de commande easy_install pour installer le fichier .Egg.

0
wisbucky

J'utilise OSX 10.9.2 et j'obtiens la même erreur.

L'installation des outils de ligne de commande XCode n'aide pas pour cette version particulière d'OSX.

Je pense qu'une meilleure approche pour résoudre ce problème consiste à installer avec la commande suivante:

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

Ceci est similaire au correctif de jdkoftinoff, mais ne modifie pas votre système de manière permanente.

0
valo

J'ai rencontré la même question et après des jours de travail, j'ai résolu ce problème sous OS X 10.9.4, avec Python 3.4.1.

Voici ma solution,

Selon installation de lxml à partir de lxml.de,

Un macport de lxml est disponible. Essayez quelque chose comme l'installation du port py25-lxml

Si vous ne possédez pas MacPort, installez-le à partir de MacPort.org . C'est assez facile. Vous aurez peut-être également besoin d’un compilateur. Pour installer les outils de compilation XCode, utilisez xcode-select --install

Tout d'abord, j'ai mis à jour mon port avec la dernière version via Sudo port selfupdate,

Ensuite, je viens de taper Sudo port install libxml2 et quelques minutes plus tard, vous devriez voir que libxml2 est installé avec succès. Vous aurez probablement aussi besoin de libxslt pour installer LXML. Pour installer libxslt, utilisez: Sudo port install libxslt.

Maintenant, tapez juste pip install lxml, cela devrait fonctionner correctement.

0
Pisces