Получение "Не удалось найти функцию xmlCheckVersion в библиотеке libxml2. Установлена ​​ли libxml2?" при установке lxml через pip

Я получаю ошибку 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.10 на x86 в virtualenv под Windows 10.

14 ответов

Решение

Установите lxml с http://www.lfd.uci.edu/~gohlke/pythonlibs/ для вашей версии Python. Это предварительно скомпилированный WHL с необходимыми модулями / зависимостями.

Сайт перечисляет несколько пакетов, например, при использовании Win32 Python 2.7 используйте lxml-3.6.1-cp27-cp27m-win32.whl,

Загрузите файл, а затем установите с

pip install C:\path\to\downloaded\file\lxml-3.6.1-cp27-cp27m-win32.whl

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

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

Попробуй использовать:
easy_install lxml
Это работает для меня, win10, python 2.7.

В Mac OS X El Capitan мне пришлось выполнить эти две команды, чтобы исправить эту ошибку:

xcode-select --install
pip install lxml

Который закончил тем, что установил lxml-3.5.0

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

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

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

yum install python-lxml

Ubuntu

sudo apt-get install -y python-lxml

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

set STATICBUILD=true && pip install lxml

вместо этого запустите эту команду, сначала должен быть установлен компилятор VS C++

https://blogs.msdn.microsoft.com/pythonengineering/2016/04/11/unable-to-find-vcvarsall-bat/

Это работает для меня с Python 3.5.2 и Windows 7

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

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

1) Их установка решила проблему:

Сайт для скачивания файла : Скачать

2) После установки сохраните файл в доступной папке.

      pip install *path to that file*

По какой-то причине это не работает в python 3.11, но работает в 3.10.

В Windows для установки модуля с предыдущей версией используйте

      py -3.10 -m pip install lxml

если вы хотите установить его в venv, используйте

      py -3.10 -m venv .venv
.venv/Scripts/pip.exe install lxml

если вы настроили venv, вы можете просто использовать

      pip install lxml

Вам также необходимо запустить программу python с этой версией. Если вы настроили venv, то этого делать не нужно.

      py -3.10 file.py

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

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

На MacOS Big Sur я запустилxcode-select --installкак было предложено, установил XCode, перезапустил Mac, но при установке .

Что помогло, так это сброс пути XCode:

sudo xcode-select --reset

После этого,lxmlустановлен успешно.

Загрузите скомпилированный WHL, представленный на странице выпуска проекта GitHub https://github.com/lxml/lxml/releases.

Они устанавливаются с помощью команды pip.

      python -m pip install --upgrade path/to/lxml.whl

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

я использую venv.

В моем случае достаточно было добавить lxml==4.6.3 к requirements.txt.

Одна библиотека хотела более раннюю версию, и это вызывало эту ошибку, поэтому, когда я заставил pip использовать новейшую версию (в настоящее время 4.6.3), установка прошла успешно.

Другие вопросы по тегам