Отримання "Не вдалося знайти функцію xmlCheckVersion у бібліотеці libxml2. Встановлено libxml2? " при встановленні lxml через pip


102

Я отримую помилку Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?при спробі встановити lxml через 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

Я не знаходжу жодних пакунків dev libxml2 для встановлення через pip.

Використання Python 2.7 та Python 3.x на x86 у virtualenv під Windows 10.

Відповіді:


157

У мене виникла ця проблема і я зрозумів, що, хоча у мене встановлений libxml2, у мене не було необхідних бібліотек розробки, необхідних пакетом python. Встановлення їх вирішило проблему:

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

23
Будь ласка, прочитайте вміст ОП. Він робить це на машині Windows!
Метагуман

2
Правильне рішення для Linux під час використання pip
Горанек

3
Fedora 23: dnf install libxml2-devel таdnf install libxslt-devel
SergO

@Metahuman Встановлення тих же пакетів із установкою Cygwin вирішує проблему для мене в Windows 10.
Тег

2
Centos 7 : sudo yum install libxml2-devel libxslt-devel(потрібно для модуля python-docx)
Марк Максмейстер

108

Встановіть lxml з http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml для вашої версії python. Це попередньо складений WHL з необхідними модулями / залежностями.

На сайті перелічено декілька пакетів, якщо, наприклад, використовується Win32 Python 3.9 lxml‑4.5.2‑cp39‑cp39‑win32.whl.

Завантажте файл, а потім встановіть за допомогою:

pip install C:\path\to\downloaded\file\lxml4.5.2cp39cp39win32.whl

4
@ user151496 - yum install libxml2-devel libxslt-devel зробив це для мене. stackoverflow.com/questions/26884514/…
Trent

6
Найкраща відповідь для Windows поки що.
Леонель Санчес да Сільва

2
Ви також можете встановити цю більш загальну команду: встановити pip --use-wheel --find-links = C: \ path \ to \ folder \ with \ wheel lxml
rleelr

1
Це посилання врятувало мою дупу багато разів :-) Тому що там багато коліс.
м3нда

1
Чудова допомога. Ще одна невелика річ, яку мені потрібно було зробити: не вдалося встановити на моєму віртуальному оточенні (колесо не підтримується). Врешті-решт я встановив його на свій звичайний python (c: \ program files x86 ...) і скопіював python27\lib\site-packages\lxml*папки у віртуальну env.
реформа

35

Спробуйте використовувати:
easy_install lxml
Це працює для мене, win10, python 2.7.


5
він видає ту саму помилку, коли використовує просту команду встановлення для lxml
Piyush

1
Раніше працював для мене, але тепер з новою версією lxml це більше не працює.
SaeX

23

У Mac OS X El Capitan мені довелося виконати ці дві команди, щоб виправити цю помилку:

xcode-select --install
pip install lxml

Закінчилося встановлення lxml-3.5.0

Коли ви запускаєте команду xcode-select, можливо, вам доведеться підписати EULA (так що X-Term стане в нагоді для інтерфейсу користувача, якщо ви робите це на безголівковій машині).


2
Так, це зробити для мене трюк в OS X El Capitan. Насправді, якщо ви прокручуєте екран, щоб побачити першопричину помилки, там є рядок із написом "Можливо, спробуйте: xcode-select - встановити"
Devy

Це виправлено, і є рядок, який робить це, як це було сказано вище!
jfive

1
Хтось ще відчуває, що вони бігали xcode-select --installраніше? Чи є інтроспекція того, що це робить або перший, або другий раз? Як зауваження, хоча мені не довелося встановлювати lxmlглобально, щоб він працював у віртуальному середовищі, так що принаймні є таке.
lol

21

У випадку, якщо хтось інший має таку саму проблему, як це

Centos, спробуйте:

yum install python-lxml

Ubuntu

sudo apt-get install -y python-lxml

працював на мене.



1

Я спробував встановити lib, який залежить, lxmlі нічого не працює. Я бачу повідомлення, коли було розпочато збірку: "Будівництво без Cython", тому після установки cythonз apt-get install cython, lxmlбуло встановлено.


1

Мені не дивно, що жодне з вищезазначених рішень не вийшло, але я побачив, як установка igd видалила нову версію та встановила стару, для рішення я завантажив цей архів: https://pypi.org/project/ файли igd / #

і змінив рекомендовану версію нової версії: 'lxml == 4.3.0' у setup.py Це працює!


0

Я отримав ту саму помилку для 32-бітного python. Після встановлення 64-бітної проблеми проблема була виправлена.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.