Встановлення модуля 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

Відповіді:


106

Просто зробіть:

sudo apt-get install python-lxml

Для Python 2 (наприклад, вимагається Inkscape):

sudo apt-get install python2-lxml

Якщо ви плануєте встановити з джерела, тоді відповідь Альбертова допоможе. Але якщо в цьому немає причини, не робіть, просто встановіть її із сховища.


6
Якщо ви використовуєте віртуальне середовище, це не правильна відповідь.
AlexLordThorsen


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повинно бути достатньо
Матьє

Мені довелося це зробити, щоб встановити WeasyPrint, їхні apt-getінструкції лише для Debian 7 не працювали.
cnst

1
libxslt був важливим для мене, налаштування lxml не пройшло б без нього.
axil

32

Якщо у вас запущений python3, вам доведеться зробити:

pip3 install lxml


Це те, що мені вдалося! Я використовував 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. Будь-які рішення?
Павло

використовувати "python2.7.exe -m pip install --upgrade lxml"
Oni


0

Якщо ви стикаєтесь з цією проблемою на зображенні, заснованому на Альпах, спробуйте:

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

// pip install -r requirements.txt

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