Ottenere "Impossibile trovare la funzione xmlCheckVersion nella libreria libxml2. Libxml2 è installato? " durante l'installazione di lxml tramite pip


102

Ricevo un errore Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?durante il tentativo di installare lxml tramite 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

Non trovo alcun pacchetto di sviluppo libxml2 da installare tramite pip.

Utilizzo di Python 2.7 e Python 3.x su x86 in un virtualenv sotto Windows 10.

Risposte:


157

Ho avuto questo problema e mi sono reso conto che mentre avevo installato libxml2, non avevo le librerie di sviluppo necessarie richieste dal pacchetto python. Installandoli ha risolto il problema:

sudo apt-get install libxml2-dev libxslt1-dev
sudo pip install lxml

23
Si prega di leggere il contenuto dei PO. Lo sta facendo su una macchina Windows!
Metahuman

2
Soluzione corretta per Linux quando si utilizza pip
Goranek

3
Fedora 23: dnf install libxml2-devel ednf install libxslt-devel
SergO

@Metahuman L'installazione degli stessi pacchetti con il programma di installazione di Cygwin risolve il problema per me su Windows 10.
Tag

2
Centos 7 : sudo yum install libxml2-devel libxslt-devel(richiesto per il modulo python-docx)
Marc Maxmeister

108

Installa lxml da http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml per la tua versione di Python. È un WHL precompilato con moduli / dipendenze richiesti.

Il sito elenca diversi pacchetti, quando ad esempio si utilizza Win32 Python 3.9, utilizzare lxml‑4.5.2‑cp39‑cp39‑win32.whl.

Scarica il file e installalo con:

pip install C:\path\to\downloaded\file\lxml4.5.2cp39cp39win32.whl

4
@ user151496 - yum install libxml2-devel libxslt-devel ha fatto questo per me. stackoverflow.com/questions/26884514/…
Trent

6
Finora la migliore risposta per Windows.
Leonel Sanches da Silva

2
Puoi anche installare con questo comando più generico: pip install --use-wheel --find-links = C: \ path \ to \ folder \ with \ wheel lxml
rleelr

1
Quel collegamento mi ha salvato il culo molte volte :-) perché ci sono molte ruote lì dentro.
m3nda

1
Grande aiuto. Un'altra piccola cosa che dovevo fare: non è riuscita a installarsi sul mio ambiente virtuale (ruota non supportata). Alla fine l'ho installato sul mio normale python (c: \ program files x86 ...) e ho copiato le python27\lib\site-packages\lxml*cartelle nell'env virtuale.
reformy

35

Prova a usare:
easy_install lxml
funziona per me, win10, python 2.7.


5
genera lo stesso errore quando si utilizza il comando di installazione facile per lxml
Piyush

1
Prima funzionava per me, ma ora con una nuova versione lxml non funziona più.
SaeX

23

Su Mac OS X El Capitan ho dovuto eseguire questi due comandi per correggere questo errore:

xcode-select --install
pip install lxml

Che ha finito per installare lxml-3.5.0

Quando esegui il comando xcode-select potresti dover firmare un EULA (quindi tieni a portata di mano un X-Term per l'interfaccia utente se lo fai su una macchina headless).


2
Sì, questo fa il trucco per me in OS X El Capitan. Infatti, se scorri lo schermo verso l'alto per vedere la causa principale dell'errore, c'è una riga che dice "Forse prova: xcode-select --install"
Devy

Questo lo ha risolto, e c'è una riga che lo suggerisce come commentato sopra!
j

1
Qualcun altro si sente come se avesse già corso xcode-select --installprima? C'è qualche introspezione su ciò che fa una prima o una seconda volta? Come nota, anche se non ho dovuto installarlo a lxmllivello globale perché funzionasse in un ambiente virtuale, almeno così c'è.
lol

21

Nel caso in cui qualcun altro abbia lo stesso problema di questo

Centos, prova:

yum install python-lxml

Ubuntu

sudo apt-get install -y python-lxml

ha funzionato per me.



1

Ho provato a installare una libreria che dipende lxmle non funziona nulla. Vedo un messaggio quando la build è stata avviata: "Building without Cython", quindi dopo l'installazione cythoncon apt-get install cython, è lxmlstato installato.


1

Non è strano per me che nessuna delle soluzioni sopra sia venuta fuori, ma ho visto come l'installazione di igd ha rimosso la nuova versione e installato quella vecchia, per la soluzione ho scaricato questo archivio: https://pypi.org/project/ igd / # file

e ha cambiato la versione consigliata della nuova versione: "lxml == 4.3.0" in setup.py Funziona!


0

Ho ricevuto lo stesso errore per Python a 32 bit. Dopo l'installazione a 64 bit, il problema è stato risolto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.