не могу установить libxml2 в virtualenv

У меня возникла проблема с модулем Python libxml2.

Я пытаюсь установить его на python3 virtualenv, используя следующую команду:

pip install libxml2-python3

но он показывает следующую ошибку:

Collecting libxml2-python3   Using cached
https://files.pythonhosted.org/packages/41/97/a2ecf6c5b291799dbd40b3d041d89b0ecdb1b43c8c2503e27991325851cd/libxml2-python3-2.9.5.tar.gz
     Complete output from command python setup.py egg_info:
     failed to find headers for libxml2: update includes_dir

     ---------------------------------------- 
 Command "python setup.py egg_info" failed with error code 1 in
 /tmp/pip-install-72u9ke0y/libxml2-python3/

Я пробовал решения, представленные в следующих ссылках, но у меня ничего не работает:

https://github.com/GoogleCloudPlatform/google-cloud-python/issues/ 3884

pip install unroll: установка python Ошибка .py egg_info с кодом ошибки 1

Как установить libxml2 в virtualenv?

я работаю на федоре 27 ос


person Mohamed Halawa    schedule 15.06.2018    source источник


Ответы (4)


Если я не ошибаюсь, вам понадобятся файлы разработки libxml2. Попробуйте запустить

yum install libxml2-devel

затем снова запустите pip install

person luz.arthur    schedule 15.06.2018
comment
Вы не ошиблись! В Fedora 34 это помогло! Спасибо вам за вашу работу! - person Eugene Gr. Philippov; 29.06.2021

Он установлен с lxml, на самом деле вы, вероятно, захотите использовать lxml вместо libxml2, потому что lxml основан на libxml2, более питоническом:

sudo pip install lxml

Страница libxml2 говорит:

Обратите внимание, что некоторым сторонникам Python не нравится набор привязок Python по умолчанию, вместо того, чтобы жаловаться, я предлагаю им взглянуть на lxml, более питонические привязки для libxml2 и libxslt, и проверить список рассылки.

страница lxml говорит:

Инструментарий lxml XML — это привязка Pythonic для библиотек C libxml2 и libxslt. Он уникален тем, что сочетает в себе скорость и полноту функций XML этих библиотек с простотой собственного API Python, в основном совместимого, но превосходящего хорошо известный API ElementTree. Последний выпуск работает со всеми версиями CPython от 2.6 до 3.6. См. введение для получения дополнительной информации об истории и целях проекта lxml. Ответы на некоторые распространенные вопросы приведены в FAQ.

person shrewmouse    schedule 15.06.2018
comment
укажите URL-адреса этих страниц. - person not2qubit; 21.11.2018

У меня похожая ситуация, мой Linux — Ubuntu в Windows 10 (WSL — Windows Подсистема для Linux)

Что я сделал для решения проблемы:

  1. Используя apt, установите: python3 python3-pip, libxml2 libxml2-dev.
me@WSL:~/$ sudo apt-get update
me@WSL:~/$ sudo apt install python3 python3-pip libxml2 libxml2-dev
  1. Используя установленный pip, установите libxml2-python
    me@WSL:~/$ pip3 install libxml2-python3
  1. сделано. надеюсь, что эти заметки помогут вам.
person guete    schedule 19.12.2019
comment
ты спас мой день! - person Duc Nguyen; 25.11.2020

Да, я получил ту же ошибку после попытки обновить пакет lmxl pip. Проблема в том, что lxml зависит как от libmxl2, так и от libxslt библиотек разработки. Поэтому вам нужно убедиться, что они установлены в первую очередь.

# pip3 show lxml
Name: lxml
Version: 4.2.5
Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
Home-page: http://lxml.de/
Author: lxml dev team
Author-email: [email protected]
License: BSD
Location: /usr/lib/python3.6/site-packages
Requires:
Required-by: Scrapy, parsel, [etc etc]

Итак, установите пакеты по строке с:

apt-get install libxml2-devel libxslt-devel

(И все, от чего они, в свою очередь, зависят.)

person not2qubit    schedule 08.11.2018