Cómo instalar lxml en Ubuntu
Tengo dificultades para instalar lxml con easy_install en Ubuntu 11.
Cuando escribo $ easy_install lxml
me sale:
Searching for lxml
Reading http://pypi.python.org/simple/lxml/
Reading http://codespeak.net/lxml
Best match: lxml 2.3
Downloading http://lxml.de/files/lxml-2.3.tgz
Processing lxml-2.3.tgz
Running lxml-2.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-7UdQOZ/lxml-2.3/egg-dist-tmp-GacQGy
Building lxml version 2.3.
Building without Cython.
ERROR: /bin/sh: xslt-config: not found
** make sure the development packages of libxml2 and libxslt are installed **
Using build configuration of libxslt
In file included from src/lxml/lxml.etree.c:227:0:
src/lxml/etree_defs.h:9:31: fatal error: libxml/xmlversion.h: No such file or directory
compilation terminated.
Parece que libxslt
no libxml2
está instalado. Intenté seguir las instrucciones en http://www.techsww.com/tutorials/libraries/libxslt/installation/installing_libxslt_on_ubuntu_linux.php y http://www.techsww.com/tutorials/libraries/libxml/installation/installing_libxml_on_ubuntu_linux. php sin éxito.
si lo intento wget ftp://xmlsoft.org/libxml2/libxml2-sources-2.6.27.tar.gz
lo consigo
<successful connection info>
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD (1) /libxml2 ... done.
==> SIZE libxml2-sources-2.6.27.tar.gz ... done.
==> PASV ... done. ==> RETR libxml2-sources-2.6.27.tar.gz ...
No such file `libxml2-sources-2.6.27.tar.gz'.
Si pruebo el otro primero, lo lograré ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
y eventualmente fallará con:
checking for libxml libraries >= 2.6.27... configure: error: Could not find libxml2 anywhere, check ftp://xmlsoft.org/.
Probé ambas versiones 2.6.27
y 2.6.29
sin libxml2
diferencias.
Lo he hecho con éxito sin dejar piedra sin remover sudo apt-get install libxml2-dev
, pero esto no cambia nada.
Como estás en Ubuntu, no te molestes con esos paquetes fuente. Simplemente instale esos paquetes de desarrollo usando apt-get.
apt-get install libxml2-dev libxslt1-dev python-dev
Sin embargo, si está satisfecho con una versión posiblemente anterior de lxml, puede probar
apt-get install python-lxml
y terminar con esto. :)
También tuve que instalar lib32z1-dev antes de compilar lxml (Ubuntu 13.04 x64).
sudo apt-get install lib32z1-dev
O todos los paquetes requeridos juntos:
sudo apt-get install libxml2-dev libxslt-dev python-dev lib32z1-dev
Como comentó @Pepijn en la respuesta de @Druska, en ubuntu 13.04 x64, no es necesario usar lib32z1-dev, zlib1g-dev es suficiente:
sudo apt-get install libxml2-dev libxslt-dev python-dev zlib1g-dev
Instalé lxml con pip en Vagrant, usando Ubuntu 14.04 y tuve el mismo problema. Aunque se instalaron todos los requisitos, recibí el mismo error una y otra vez. Resultó que mi máquina virtual tenía poca memoria de forma predeterminada. Con 1024 MB todo funciona bien.
Agregue esto a su VagrantFile y lxml debería compilar/instalar correctamente:
config.vm.provider "virtualbox" do |vb|
vb.memory = 1024
end
Gracias a sixhobbit por la pista (ver: no se puede instalar lxml en Ubuntu 12.04 ).