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.

SaeX
fonte

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
prático
fonte
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
SaeX
fonte
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.

Zing Lee
fonte
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).

Jason D
fonte
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.

J1MF0X
fonte
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.

gabrieloliveira
fonte
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!

Ivan Minakov
fonte
0

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

Nishara MJ
fonte