Obteniendo “No se pudo encontrar la función xmlCheckVersion en la biblioteca libxml2. ¿Está libxml2 instalado? " al instalar lxml a través de pip

102

Recibo un error Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?al intentar instalar lxml a través de 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

No encuentro ningún paquete de desarrollo libxml2 para instalar a través de pip.

Usando Python 2.7 y Python 3.x en x86 en un virtualenv bajo Windows 10.

SaeX
fuente

Respuestas:

157

Tuve este problema y me di cuenta de que, aunque tenía libxml2 instalado, no tenía las bibliotecas de desarrollo necesarias requeridas por el paquete de python. Instalarlos resolvió el problema:

sudo apt-get install libxml2-dev libxslt1-dev
sudo pip install lxml
practico
fuente
23
Lea el contenido de los OP. ¡Está haciendo esto en una máquina con Windows!
Metahuman
2
Solución correcta para linux cuando se usa pip
Goranek
3
Fedora 23: dnf install libxml2-devel ydnf install libxslt-devel
SergO
@Metahuman Instalar los mismos paquetes con el instalador Cygwin me resuelve el problema en Windows 10.
Etiqueta
2
Centos 7 : sudo yum install libxml2-devel libxslt-devel(requerido para el módulo python-docx)
Marc Maxmeister
108

Instale lxml desde http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml para su versión de Python. Es un WHL precompilado con módulos / dependencias requeridos.

El sitio enumera varios paquetes, por ejemplo, cuando usa Win32 Python 3.9, use lxml‑4.5.2‑cp39‑cp39‑win32.whl.

Descargue el archivo y luego instálelo con:

pip install C:\path\to\downloaded\file\lxml4.5.2cp39cp39win32.whl
SaeX
fuente
4
@ user151496 - yum install libxml2-devel libxslt-devel hizo esto por mí. stackoverflow.com/questions/26884514/…
Trent
6
La mejor respuesta para Windows hasta ahora.
Leonel Sanches da Silva
2
También puede instalar con este comando más genérico: pip install --use-wheel --find-links = C: \ path \ to \ folder \ with \ wheel lxml
rleelr
1
Ese enlace me salvó el culo muchas veces :-) porque hay muchas ruedas ahí.
m3nda
1
Gran ayuda. Otra pequeña cosa que tenía que hacer: no se pudo instalar en mi entorno virtual (la rueda no es compatible). Finalmente lo instalé en mi python regular (c: \ archivos de programa x86 ...) y copié las python27\lib\site-packages\lxml*carpetas en el entorno virtual.
reformado
35

Intenta usar:
easy_install lxml
Eso funciona para mí, win10, python 2.7.

Zing Lee
fuente
5
arroja el mismo error cuando se usa el comando de instalación fácil para lxml
Piyush
1
Solía ​​funcionar para mí, pero ahora con una nueva versión lxml esto ya no funciona.
SaeX
23

En Mac OS X El Capitan tuve que ejecutar estos dos comandos para corregir este error:

xcode-select --install
pip install lxml

Que terminó instalando lxml-3.5.0

Cuando ejecute el comando xcode-select, es posible que deba firmar un EULA (por lo tanto, tenga un X-Term a mano para la interfaz de usuario si está haciendo esto en una máquina sin cabeza).

Jason D
fuente
2
Sí, eso me funciona en OS X El Capitan. De hecho, si se desplaza hacia arriba en la pantalla para ver la causa raíz del error, hay una línea que dice "Quizás intente: xcode-select --install"
Devy
¡Esto lo solucionó, y hay una línea que sugiere esto como se comentó anteriormente!
2016
1
Sin xcode-select --installembargo, ¿alguien más siente que ha corrido antes? ¿Hay alguna introspección sobre lo que hace esto una primera o una segunda vez? Como nota, aunque no tuve que instalarlo lxmlglobalmente para que funcione en un entorno virtual, al menos existe eso.
lol
21

En caso de que alguien más tenga el mismo problema que este en

Centos, prueba:

yum install python-lxml

Ubuntu

sudo apt-get install -y python-lxml

trabajó para mi.

J1MF0X
fuente
1

Intenté instalar una lib que depende lxmly nada funciona. Veo un mensaje cuando se inició la compilación: "Construyendo sin Cython", así que después de instalar cythoncon apt-get install cython, lxmlse instaló.

gabrieloliveira
fuente
1

No es extraño para mí que ninguna de las soluciones anteriores surgiera, pero vi cómo la instalación de igd eliminó la nueva versión e instaló la anterior, para la solución descargué este archivo: https://pypi.org/project/ archivos igd / #

y cambió la versión recomendada de la nueva versión: 'lxml == 4.3.0' en setup.py ¡Funciona!

Ivan Minakov
fuente
0

Recibí el mismo error para Python de 32 bits. Después de instalar 64 bits, se solucionó el problema.

Nishara MJ
fuente