2011-01-04 1 views
61

во время работы питон скрипт, я получил эту ошибкуУстановка модуля LXML в питона

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 

ответ

48

Для компиляции lxml вам нужно установить заголовочные файлы Python (пакет python-dev в debian/ubuntu). Как и libxml2, LibXSLT, libxml2-разработчика, и 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' должно быть достаточно – Matt

+0

Мне пришлось это сделать, чтобы установить WeasyPrint, их инструкции' apt-get' для Debian 7 не работали. – cnst

91

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

sudo apt-get install python-lxml 

Если вы планируете установить из источника, то albertov's answer поможет. Но если нет причин, не делайте этого, просто установите его из репозитория.

+0

Что значит «просто делать»? – NewNameStat

+1

Старая информация сейчас, но «просто сделать» означает «ничего не потребуется, этого достаточно, я думаю, что все остальные инструкции в ответах на этот вопрос излишни» – GreenAsJade

+0

Не уверен, что это произошло только на моем сервере Debian 7, а не мой сервер CentOS 6? Кто-нибудь знает? По умолчанию установлены разные пакеты python? – fuzzyanalysis

36

Я решил, что обновление версии LXML с:

pip install --upgrade lxml 
11

Если вы работаете python3, вы должны сделать:

pip3 install lxml

3

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

$ python --version 
    Python 2.7.12 

Теперь запустите "Sudo ням поиска LXML", чтобы узнать питон * -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 
+0

Спасибо, работал на меня !! – Amit