Obtenir «Impossible de trouver la fonction xmlCheckVersion dans la bibliothèque libxml2. La libxml2 est-elle installée? » lors de l'installation de lxml via pip

102

Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?J'obtiens une erreur en essayant d'installer lxml via pip.

  c:\users\f\appdata\local\temp\xmlXPathInitqjzysz.c(1) : fatal error C1083: Cannot open include file: 'libxml/xpath.h': No such file or directory
  *********************************************************************************
  Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
  *********************************************************************************
  error: command 'C:\\Users\\f\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\cl.exe' failed with exit status 2

Je ne trouve aucun paquet de développement libxml2 à installer via pip.

Utilisation de Python 2.7 et Python 3.x sur x86 dans une virtualenv sous Windows 10.

SaeX
la source

Réponses:

157

J'ai eu ce problème et j'ai réalisé que bien que libxml2 soit installé, je n'avais pas les bibliothèques de développement nécessaires requises par le package python. Leur installation a résolu le problème:

sudo apt-get install libxml2-dev libxslt1-dev
sudo pip install lxml
pratique
la source
23
Veuillez lire le contenu des PO. Il fait cela sur une machine Windows!
Metahuman
2
Solution correcte pour Linux lors de l'utilisation de pip
Goranek
3
Fedora 23: dnf install libxml2-devel anddnf install libxslt-devel
SergO
@Metahuman L'installation des mêmes packages avec le programme d'installation Cygwin résout le problème pour moi sous Windows 10.
Tag
2
Centos 7 : sudo yum install libxml2-devel libxslt-devel(requis pour le module python-docx)
Marc Maxmeister
108

Installez lxml depuis http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml pour votre version python. C'est une WHL précompilée avec les modules / dépendances requis.

Le site répertorie plusieurs packages, lorsque vous utilisez par exemple Win32 Python 3.9, utilisez lxml‑4.5.2‑cp39‑cp39‑win32.whl.

Téléchargez le fichier, puis installez avec:

pip install C:\path\to\downloaded\file\lxml4.5.2cp39cp39win32.whl
SaeX
la source
4
@ user151496 - yum install libxml2-devel libxslt-devel a fait cela pour moi. stackoverflow.com/questions/26884514/…
Trent
6
La meilleure réponse pour Windows à ce jour.
Leonel Sanches da Silva
2
Vous pouvez également installer avec cette commande plus générique: pip install --use-wheel --find-links = C: \ chemin \ vers \ dossier \ avec \ wheel lxml
rleelr
1
Ce lien m'a sauvé le cul beaucoup de fois :-) car il y a beaucoup de roues là-dedans.
m3nda
1
Grande aide. Une autre petite chose que je devais faire: il n'a pas pu être installé sur mon env virtuel (roue non prise en charge). Finalement, je l'ai installé sur mon python régulier (c: \ program files x86 ...) et copié les python27\lib\site-packages\lxml*dossiers dans l'environnement virtuel.
réformé
35

Essayez d'utiliser:
easy_install lxml
Cela fonctionne pour moi, win10, python 2.7.

Zing Lee
la source
5
il renvoie la même erreur lors de l'utilisation de la commande d'installation facile pour lxml
Piyush
1
J'avais l'habitude de travailler pour moi, mais maintenant avec une nouvelle version lxml cela ne fonctionne plus.
SaeX
23

Sur Mac OS X El Capitan, j'ai dû exécuter ces deux commandes pour corriger cette erreur:

xcode-select --install
pip install lxml

Ce qui a fini par installer lxml-3.5.0

Lorsque vous exécutez la commande xcode-select, vous devrez peut-être signer un CLUF (ayez donc un X-Term à portée de main pour l'interface utilisateur si vous le faites sur une machine sans tête).

Jason D
la source
2
Oui, cela fait l'affaire pour moi dans OS X El Capitan. En fait, si vous faites défiler l'écran pour voir la cause principale de l'erreur, il y a une ligne qui dit "Peut-être essayez: xcode-select --install"
Devy
Cela l'a corrigé, et il y a une ligne qui suggère cela comme commenté ci-dessus!
jfive
1
Quelqu'un d'autre a-t-il l'impression d'avoir déjà couru xcode-select --install? Y a-t-il une introspection sur ce que cela fait une première ou une deuxième fois? En guise de note, même si je n'ai pas eu à installer lxmlglobalement pour que cela fonctionne dans un environnement virtuel, au moins il y a cela.
lol
21

Au cas où quelqu'un d'autre aurait le même problème que celui-ci sur

Centos, essayez:

yum install python-lxml

Ubuntu

sudo apt-get install -y python-lxml

travaillé pour moi.

J1MF0X
la source
1

J'ai essayé d'installer une bibliothèque qui dépend lxmlet rien ne fonctionne. Je vois un message au démarrage de la compilation: "Construire sans Cython", donc après l'installation cythonavec apt-get install cython, a lxmlété installé.

gabrieloliveira
la source
1

Il n'est pas étrange pour moi qu'aucune des solutions ci-dessus ne soit apparue, mais j'ai vu comment l'installation igd a supprimé la nouvelle version et installé l'ancienne, pour la solution j'ai téléchargé cette archive: https://pypi.org/project/ fichiers igd / #

et changé la version recommandée de la nouvelle version: 'lxml == 4.3.0' dans setup.py Cela fonctionne!

Ivan Minakov
la source
0

J'ai eu la même erreur pour python 32 bits. Après l'installation de 64 bits, le problème a été résolu.

Nishara MJ
la source