Установка модуля lxml в Python

88

при запуске скрипта python я получил эту ошибку

  from lxml import etree
ImportError: No module named lxml

сейчас попробовал установить lxml

sudo easy_install lmxl

но это дает мне следующую ошибку

Building lxml version 2.3.beta1.
NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' needs to be available.
ERROR: /bin/sh: xslt-config: not found

** make sure the development packages of libxml2 and libxslt are installed **

Использование конфигурации сборки libxslt

src/lxml/lxml.etree.c:4: fatal error: Python.h: No such file or directory
compilation terminated.
error: Setup script exited with error: command 'gcc' failed with exit status 1
user563101
источник

Ответы:

106

Просто делать:

sudo apt-get install python-lxml

Для Python 2 (например, требуется Inkscape):

sudo apt-get install python2-lxml

Если вы планируете установку из исходников, то ответ Альбертова поможет. Но если на то нет причины, не надо, просто установите его из репозитория.

user225312
источник
6
Если вы используете виртуальную среду, это неправильный ответ.
AlexLordThorsen
71

Я решил обновить версию lxml с помощью:

pip install --upgrade lxml
Дбаренас
источник
49

Вам необходимо установить файлы заголовков Python (пакет python-dev в debian / ubuntu) для компиляции lxml. А также libxml2, libxslt, libxml2-dev и libxslt-dev:

apt-get install python-dev libxml2 libxml2-dev libxslt-dev
Альбертов
источник
2
и libxml2-dev и libxslt-dev.
Леннарт Регебро
1
libxslt , похоже, не требуется (по крайней мере, не для меня). Следовательно, apt-get install python-dev libxml2 libxml2-dev libxslt-devдолжно быть достаточно
Mathieu
Мне пришлось сделать это, чтобы установить WeasyPrint, их apt-getинструкции только для Debian 7 не работали.
cnst
1
libxslt был для меня необходим, без него установка lxml не прошла бы.
пазуха
32

Если вы используете python3, вам нужно будет сделать:

pip3 install lxml

Yennycheung
источник
Это то, что сработало для меня! Я использовал python3 и устанавливал библиотеки для предыдущей версии python через pip. Для python3, мы должны использовать pip3.
Виктор
5

Для RHEL / CentOS выполните команду «python --version», чтобы узнать версию Python. Например, ниже:

$ python --version 
  Python 2.7.12

Теперь запустите «sudo yum search lxml», чтобы найти пакет python * -lxml.

$ sudo yum search lxml
Failed to set locale, defaulting to C
Loaded plugins: priorities, update-motd, upgrade-helper
1014 packages excluded due to repository priority protections
============================================================================================================= N/S matched: lxml =============================================================================================================
python26-lxml-docs.noarch : Documentation for python-lxml
python27-lxml-docs.noarch : Documentation for python-lxml
python26-lxml.x86_64 : ElementTree-like Python bindings for libxml2 and libxslt
python27-lxml.x86_64 : ElementTree-like Python bindings for libxml2 and libxslt

Теперь вы можете выбрать пакет в соответствии с вашей версией Python и запустить команду, как показано ниже:

$ sudo yum install python27-lxml.x86_64
Кришна Пандей
источник
Я работаю в Windows. Какие-нибудь решения?
Paul
используйте "python2.7.exe -m pip install --upgrade lxml"
Oni
1

Для python 3 это сработало для меня

sudo apt-get install python3-lxml
Macumbaomuerte
источник
0

Если вы столкнулись с этой проблемой на изображении на базе Alpine, попробуйте следующее:

apk add --update --no-cache g++ gcc libxml2-dev libxslt-dev python-dev libffi-dev openssl-dev make

// установка пипса -r requirements.txt

Райан Августин
источник