2011-01-04 15 views
61

durante l'esecuzione di uno script python, ho ottenuto questo errorel'installazione del modulo lxml in python

from lxml import etree 
ImportError: No module named lxml 

ora ho provato ad installare lxml

sudo easy_install lmxl 

ma mi dà il seguente errore

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

Usando costruire configurazione del 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 

risposta

48

È necessario installare i file di intestazione di Python (pacchetto python-dev in Debian/Ubuntu) per compilare lxml. Così come libxml2, libxslt, libxml2-dev, e libxslt-dev:

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

e libxml2-dev e libxslt-dev. –

+1

** libxslt ** non sembra richiesto (non era per me, almeno). Pertanto, 'apt-get install python-dev libxml2 libxml2-dev-libxslt dev' dovrebbe essere abbastanza – Matt

+0

ho dovuto fare questo per installare WeasyPrint, loro' istruzioni apt-GET' per Debian 7 da solo non ha funzionato. – cnst

91

Basta fare:

sudo apt-get install python-lxml 

Se si prevede di installare da sorgente, allora albertov's answer aiuterà. Ma a meno che non ci sia un motivo, non farlo, basta installarlo dal repository.

+0

Cosa intendi per "basta fare"? – NewNameStat

+1

Vecchie informazioni ora, ma "basta fare" significa "non sarà richiesto nient'altro, questo è sufficiente, penso che tutte le altre istruzioni in risposta a questa domanda siano superflue" – GreenAsJade

+0

Non è sicuro che ciò sia successo solo sul mio server Debian 7 e non il mio server CentOS 6? Qualcuno sa? Diversi pacchetti python installati di default? – fuzzyanalysis

36

Ho risolto l'aggiornamento alla versione lxml con:

pip install --upgrade lxml 
11

Se stai usando python3, dovrete fare:

pip3 install lxml

3

per RHEL/CentOS, run " comando python --version "per scoprire la versione di Python. Per esempio. qui di seguito:

$ python --version 
    Python 2.7.12 

Ora gestita "sudo yum ricerca lxml" per scoprire pitone * pacchetto -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 

Ora è possibile scegliere il pacchetto secondo la vostra versione di Python ed eseguire il comando come di seguito:

$ sudo yum install python27-lxml.x86_64 
+0

Grazie, ha funzionato per me !! – Amit