Получение «Не удалось найти функцию 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

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

Использование Python 2.7 и Python 3.x на x86 в virtualenv под Windows 10.

SaeX
источник

Ответы:

157

У меня была эта проблема, и я понял, что, хотя у меня был установлен libxml2, у меня не было необходимых библиотек разработки, требуемых пакетом python. Их установка решила проблему:

sudo apt-get install libxml2-dev libxslt1-dev
sudo pip install lxml
практический
источник
23
Пожалуйста, прочтите содержание OP. Он делает это на машине с Windows!
Metahuman
2
Правильное решение для linux при использовании pip
Горанек
3
Fedora 23: dnf install libxml2-devel иdnf install libxslt-devel
SergO
@Metahuman Установка тех же пакетов с установщиком Cygwin решает мою проблему в Windows 10.
Tag
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
SaeX
источник
4
@ user151496 - yum install libxml2-devel libxslt-devel сделала это за меня. stackoverflow.com/questions/26884514/…
Трент
6
На данный момент лучший ответ для Windows.
Леонель Санчес да Силва,
2
Вы также можете установить с помощью этой более общей команды: pip install --use-wheel --find-links = C: \ path \ to \ folder \ with \ wheel lxml
rleelr 06
1
Эта ссылка спасла мою задницу много раз :-), потому что там много колес.
m3nda
1
Большая помощь. Еще одна небольшая вещь, которую мне нужно было сделать: не удалось установить на моем виртуальном окружении (колесо не поддерживается). В конце концов я установил его на свой обычный питон (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, вам, возможно, придется подписать лицензионное соглашение (так что имейте под рукой X-Term для пользовательского интерфейса, если вы делаете это на автономной машине).

Джейсон Д
источник
2
Ага, это поможет мне в OS X El Capitan. Фактически, если вы прокрутите экран вверх, чтобы увидеть основную причину ошибки, там будет строка «Возможно, попробуйте: xcode-select --install»
Деви
Это исправило это, и есть строка, которая предлагает это, как прокомментировано выше!
2016,
1
Но есть ли у кого-нибудь еще ощущение, что они бегали xcode-select --installраньше? Есть ли какой-нибудь самоанализ по поводу того, что он делает в первый или второй раз? В качестве примечания, хотя мне не нужно было устанавливать его lxmlглобально, чтобы он работал в виртуальной среде, так что, по крайней мере, он есть.
lol
21

Если у кого-то еще есть такая же проблема, как у этого на

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

yum install python-lxml

Ubuntu

sudo apt-get install -y python-lxml

работал у меня.

J1MF0X
источник
1

Я попытался установить зависящую библиотеку, lxmlно ничего не работает. При запуске сборки я вижу сообщение: «Сборка без Cython», поэтому после установки cythonс помощью apt-get install cython, lxmlбыла установлена.

Габриэлоливейра
источник
1

Для меня не странно, что ни одно из вышеперечисленных решений не подошло, но я видел, как установка igd удалила новую версию и установила старую, для решения я скачал этот архив: https://pypi.org/project/ igd / # файлов

и изменил рекомендованную версию новой версии: 'lxml == 4.3.0' в setup.py Работает!

Иван Минаков
источник
0

У меня такая же ошибка для 32-битного Python. После установки 64bit проблема была исправлена.

Нишара MJ
источник