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.

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

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\lxml‑4.5.2‑cp39‑cp39‑win32.whl

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.


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).


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.



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ó.


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!


0

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.