Obtendo “Não foi possível encontrar a função xmlCheckVersion na biblioteca libxml2. O libxml2 está instalado? ” ao instalar lxml através de pip


102

Estou recebendo um erro Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?ao tentar instalar o lxml por meio do 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

Não encontrei nenhum pacote dev libxml2 para instalar via pip.

Usando Python 2.7 e Python 3.x em x86 em um virtualenv no Windows 10.

Respostas:


157

Tive esse problema e percebi que, embora tivesse o libxml2 instalado, não tinha as bibliotecas de desenvolvimento necessárias exigidas pelo pacote python. Instalá-los resolveu o problema:

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

23
Por favor, leia o conteúdo dos OPs. Ele está fazendo isso em uma máquina Windows!
— Metahuman

2
Solução correta para Linux ao usar pip
— Goranek

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

@Metahuman Instalar os mesmos pacotes com o instalador Cygwin resolve o problema para mim no Windows 10.
— Tag

2
Centos 7 : sudo yum install libxml2-devel libxslt-devel(necessário para o módulo python-docx)
— Marc Maxmeister

108

Instale lxml de http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml para sua versão python. É um WHL pré-compilado com módulos / dependências necessários.

O site lista vários pacotes, por exemplo, ao usar Win32 Python 3.9, use lxml‑4.5.2‑cp39‑cp39‑win32.whl.

Baixe o arquivo e instale com:

pip install C:\path\to\downloaded\file\lxml‑4.5.2‑cp39‑cp39‑win32.whl

4
@ user151496 - yum install libxml2-devel libxslt-devel fez isso para mim. stackoverflow.com/questions/26884514/…
— Trent

6
A melhor resposta para o Windows até agora.
— Leonel Sanches da Silva

2
Você também pode instalar com este comando mais genérico: pip install --use-wheel --find-links = C: \ path \ to \ folder \ with \ wheel lxml
— rleelr

1
Esse link me salvou muitas vezes :-) porque tem muitas rodas lá dentro.
— m3nda

1
Ótima ajuda. Outra pequena coisa que precisei fazer: Falha ao instalar no meu env virtual (roda não suportada). Por fim, instalei-o em meu python regular (c: \ arquivos de programas x86 ...) e copiei as python27\lib\site-packages\lxml*pastas para o env virtual.
— reformado

35

Tente usar:
easy_install lxml
Isso funciona para mim, win10, python 2.7.


5
ele gera o mesmo erro ao usar o comando de instalação fácil para lxml
— Piyush

1
Costumava funcionar para mim, mas agora com uma nova versão lxml isso não funciona mais.
— SaeX de

23

No Mac OS X El Capitan, tive que executar estes dois comandos para corrigir este erro:

xcode-select --install
pip install lxml

Que acabou instalando lxml-3.5.0

Quando você executa o comando xcode-select, pode ser necessário assinar um EULA (portanto, tenha um X-Term à mão para a IU se estiver fazendo isso em uma máquina sem comando).


2
Sim, isso funciona para mim no OS X El Capitan. Na verdade, se você rolar a tela para cima para ver a causa raiz do erro, há uma linha dizendo "Talvez tente: xcode-select --install"
— Devy

Isso corrigiu, e há uma linha que sugere isso, conforme comentado acima!
— jfive

1
Alguém mais sente que já correu xcode-select --installantes? Existe alguma introspecção sobre o que isso faz pela primeira ou segunda vez? Como uma observação, embora eu não tenha que instalar lxmlglobalmente para funcionar em um ambiente virtual, pelo menos existe isso.
— lol

21

Caso outra pessoa tenha o mesmo problema que este em

Centos, tente:

yum install python-lxml

Ubuntu

sudo apt-get install -y python-lxml

trabalhou para mim.



1

Tentei instalar uma lib que depende lxmle nada funciona. Vejo uma mensagem quando o build foi iniciado: "Building without Cython", portanto, após a instalação cythoncom apt-get install cython, lxmlfoi instalado.


1

Não é estranho para mim que nenhuma das soluções acima tenha surgido, mas vi como a instalação do igd removeu a nova versão e instalei a antiga, para a solução baixei este arquivo: https://pypi.org/project/ igd / # arquivos

e alterou a versão recomendada da nova versão: 'lxml == 4.3.0' em setup.py Funciona!


0

Recebi o mesmo erro para python de 32 bits. Após a instalação de 64 bits, o problema foi corrigido.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.