Pobieranie „Nie można znaleźć funkcji xmlCheckVersion w bibliotece libxml2. Czy zainstalowano libxml2? ” podczas instalowania lxml przez pip

102

Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?Podczas próby zainstalowania lxml przez pip pojawia się błąd .

  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

Nie znajduję żadnych pakietów deweloperskich libxml2 do zainstalowania przez pip.

Używanie Python 2.7 i Python 3.x na x86 w virtualenv pod Windows 10.

SaeX
źródło

Odpowiedzi:

157

Miałem ten problem i zdałem sobie sprawę, że chociaż mam zainstalowane libxml2, nie mam niezbędnych bibliotek programistycznych wymaganych przez pakiet pythona. Zainstalowanie ich rozwiązało problem:

sudo apt-get install libxml2-dev libxslt1-dev
sudo pip install lxml
praktyczny
źródło
23
Prosimy o zapoznanie się z treścią PO. Robi to na komputerze z systemem Windows!
Metahuman
2
Prawidłowe rozwiązanie dla Linuksa podczas korzystania z pip
Goranek
3
Fedora 23: dnf install libxml2-devel idnf install libxslt-devel
SergO
@Metahuman Instalacja tych samych pakietów za pomocą instalatora Cygwin rozwiązuje problem w systemie Windows 10.
Tag
2
Centos 7 : sudo yum install libxml2-devel libxslt-devel(wymagany dla modułu python-docx)
Marc Maxmeister
108

Zainstaluj lxml z http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml dla twojej wersji Pythona. Jest to prekompilowana WHL z wymaganymi modułami / zależnościami.

Witryna wymienia kilka pakietów, np. Używając Win32 Python 3.9, użyj lxml‑4.5.2‑cp39‑cp39‑win32.whl.

Pobierz plik, a następnie zainstaluj za pomocą:

pip install C:\path\to\downloaded\file\lxml4.5.2cp39cp39win32.whl
SaeX
źródło
4
@ user151496 - yum install libxml2-devel libxslt-devel zrobiło to dla mnie. stackoverflow.com/questions/26884514/…
Trent
6
Najlepsza jak dotąd odpowiedź dla systemu Windows.
Leonel Sanches da Silva
2
Możesz także zainstalować za pomocą tego bardziej ogólnego polecenia: pip install --use-wheel --find-links = C: \ path \ to \ folder \ with \ wheel lxml
rleelr
1
Ten link wiele razy uratował mi tyłek :-) ponieważ jest tam dużo kół.
m3nda
1
Wielka pomoc. Kolejna mała rzecz, którą musiałem zrobić: nie udało się zainstalować na moim wirtualnym środowisku (koło nie jest obsługiwane). Ostatecznie zainstalowałem go na moim zwykłym Pythonie (c: \ program files x86 ...) i skopiowałem python27\lib\site-packages\lxml*foldery do wirtualnego env.
reformy
35

Spróbuj użyć:
easy_install lxml
To działa dla mnie, win10, python 2.7.

Zing Lee
źródło
5
zgłasza ten sam błąd podczas używania polecenia łatwej instalacji dla lxml
Piyush,
1
Kiedyś pracował dla mnie, ale teraz z nową wersją lxml to już nie działa.
SaeX
23

W systemie Mac OS X El Capitan musiałem uruchomić te dwa polecenia, aby naprawić ten błąd:

xcode-select --install
pip install lxml

Co zakończyło się zainstalowaniem lxml-3.5.0

Po uruchomieniu polecenia xcode-select może być konieczne podpisanie umowy EULA (więc miej pod ręką X-Term dla interfejsu użytkownika, jeśli robisz to na maszynie bezgłowej).

Jason D.
źródło
2
Tak, to załatwia sprawę w OS X El Capitan. W rzeczywistości, jeśli przewiniesz ekran w górę, aby zobaczyć główną przyczynę błędu, pojawi się tam wiersz „Być może spróbuj: xcode-select --install”
Devy
To naprawiło i jest linia, która sugeruje to, jak skomentowano powyżej!
jfive
1
Czy jednak ktoś inny ma wrażenie, że biegał xcode-select --installwcześniej? Czy jest jakaś introspekcja na temat tego, co to robi za pierwszym lub drugim razem? Uwaga, chociaż nie musiałem instalować go lxmlglobalnie, aby działał w środowisku wirtualnym, więc przynajmniej tak jest.
lol
21

Na wypadek, gdyby ktoś inny miał ten sam problem, co ten

Centos, spróbuj:

yum install python-lxml

Ubuntu

sudo apt-get install -y python-lxml

pracował dla mnie.

J1MF0X
źródło
1

Próbowałem zainstalować bibliotekę, która zależy lxmli nic nie działa. Widzę komunikat, gdy budowa została początek: „budynku bez Cython”, więc po instalacji cythonz apt-get install cython, lxmlzostała zainstalowana.

gabrieloliveira
źródło
1

Nie jest dla mnie dziwne, że żadne z powyższych rozwiązań nie wyszło, ale widziałem, jak instalacja igd usunęła nową wersję i zainstalowała starą, dla rozwiązania pobrałem to archiwum: https://pypi.org/project/ igd / # plików

i zmieniłem zalecaną wersję nowej wersji: 'lxml == 4.3.0' w setup.py To działa!

Ivan Minakov
źródło
0

Otrzymałem ten sam błąd dla 32-bitowego Pythona. Po instalacji 64-bitowej problem został rozwiązany.

Nishara MJ
źródło