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\lxml4.5.2cp39cp39win32.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.