2011-01-04 23 views
61

podczas uruchamiania skryptu Pythona, mam ten błądInstalacja modułu lxml w Pythonie

from lxml import etree 
ImportError: No module named lxml 

teraz Próbowałem zainstalować lxml

sudo easy_install lmxl 

ale daje mi następujący błąd

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 ** 

Korzystanie z konfiguracji konfiguracji 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 

Odpowiedz

48

Musisz zainstalować pliki nagłówkowe Pythona (pakiet python-dev w debian/ubuntu), aby skompilować lxml. Jak libxml2, libxslt, libxml2-dev i libxslt-dev:

apt-get install python-dev libxml2 libxml2-dev libxslt-dev 
+2

i libxml2-dev i libxslt-dev. –

+1

** libxslt ** nie wydaje się być wymagany (przynajmniej nie dla mnie). Dlatego 'apt-get install python-dev libxml2 libxml2-dev libxslt-dev' powinno wystarczyć – Matt

+0

Musiałem to zrobić, aby zainstalować WeasyPrint, ich instrukcje' apt-get' dla samego Debiana 7 nie działały. – cnst

91

Wystarczy zrobić:

sudo apt-get install python-lxml 

Jeśli planujesz zainstalować ze źródeł, następnie albertov's answer pomoże. Ale jeśli nie ma powodu, nie instaluj go z repozytorium.

+0

Co masz na myśli "po prostu"? – NewNameStat

+1

Stare informacje teraz, ale "po prostu" oznacza "nic więcej nie będzie wymagane, to jest wystarczające, myślę, że wszystkie inne instrukcje w odpowiedzi na to pytanie są zbyteczne" – GreenAsJade

+0

Nie jestem pewien, czy to się stało tylko na moim serwerze Debiana 7, a nie mój serwer CentOS 6? Ktoś wie? Różne pakiety Pythona są instalowane domyślnie? – fuzzyanalysis

36

Rozwiązałem to uaktualnienie wersji lxml z:

pip install --upgrade lxml 
11

Jeśli używasz python3, trzeba zrobić:

pip3 install lxml

3

Dla RHEL/CentOS, run " python --version ", aby sprawdzić wersję Pythona. Na przykład. poniżej:

$ python --version 
    Python 2.7.12 

Teraz uruchom "sudo yum search lxml", aby znaleźć pakiet 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 

Teraz możesz wybrać pakiet, jak na swój wersji Pythona i uruchom polecenie jak poniżej:

$ sudo yum install python27-lxml.x86_64 
+0

Dzięki, pracowałem dla mnie !! – Amit

Powiązane problemy