web-dev-qa-db-fra.com

Comment installer lxml sur Ubuntu

Je ne parviens pas à installer LXML avec easy_install sous Ubuntu 11.

Quand je tape $ easy_install lxml je reçois:

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.

Il semble que libxslt ou libxml2 ne soit pas installé. J'ai essayé de suivre les instructions sur http://www.techsww.com/tutorials/libraries/libxslt/installation/installing_libxslt_on_ubuntu_linux.php et http://www.techsww.com /tutorials/libraries/libxml/installation/installing_libxml_on_ubuntu_linux.php sans succès.

Si j'essaie wget ftp://xmlsoft.org/libxml2/libxml2-sources-2.6.27.tar.gz je reçois

<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 j'essaie l'autre en premier, j'arriverai à ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2 et cela échouera éventuellement avec:

checking for libxml libraries >= 2.6.27... configure: error: Could not find libxml2 anywhere, check ftp://xmlsoft.org/.

J'ai essayé les deux versions 2.6.27 et 2.6.29 de libxml2 sans aucune différence.

En ne négligeant aucune pierre, j'ai réussi à faire Sudo apt-get install libxml2-dev, mais cela ne change rien.

435
Eric Wilson

Puisque vous êtes sur Ubuntu, ne vous occupez pas de ces paquets sources. Installez simplement ces paquets de développement en utilisant apt-get.

apt-get install libxml2-dev libxslt1-dev python-dev

Si vous préférez une version éventuellement plus ancienne de lxml, vous pouvez essayer

apt-get install python-lxml

et en finir avec ça. :)

936
AKX

Je devais également installer lib32z1-dev avant que Lxml ne compile (Ubuntu 13.04 x64).

Sudo apt-get install lib32z1-dev

Ou tous les paquets requis ensemble:

Sudo apt-get install libxml2-dev libxslt-dev python-dev lib32z1-dev
110
Druska

Comme @Pepijn a commenté la réponse de @Druska, sur ubuntu 13.04 x64, il n’est pas nécessaire d’utiliser lib32z1-dev, zlib1g-dev suffit:

Sudo apt-get install libxml2-dev libxslt-dev python-dev zlib1g-dev
43
JimmyYe

J'ai installé lxml avec pip dans Vagrant, en utilisant Ubuntu 14.04 et j'ai eu le même problème. Même si toutes les exigences ont été installées, j'ai eu la même erreur encore et encore. En fin de compte, ma VM avait peu de mémoire par défaut. Avec 1024 Mo, tout fonctionne bien.

Ajoutez ceci à votre VagrantFile et LXML devrait compiler/installer correctement:

config.vm.provider "virtualbox" do |vb|
  vb.memory = 1024
end

Merci à sixhobbit pour le conseil (voir: impossible d'installer Lxml sur Ubuntu 12.04 ).

15
Chris

Pour Ubuntu 14.04

Sudo apt-get install python-lxml

a travaillé pour moi.

10
Wade

Étape 1

Installez les dernières mises à jour python à l'aide de cette commande.

Sudo apt-get install python-dev

Étape 2

Ajouter une première dépendance libxml2 version 2.7.0 ou ultérieure

Sudo apt-get install libxml2-dev

Étape 3

Ajouter une deuxième dépendance libxslt version 1.1.23 ou ultérieure

Sudo apt-get install libxslt1-dev

Étape 4

Installez d'abord l'outil de gestion de paquet pip . et lancez cette commande.

pip install lxml

Si vous avez des doutes Cliquez ici

9
Simplans

Après avoir installé les paquets mentionnés par AKX, j'avais toujours le même problème. Résolu avec

apt-get install python-dev
8
bcoughlan

Pour Ubuntu 12.04.3 LTS (Precise Pangolin), je devais faire:

apt-get install libxml2-dev libxslt1-dev

(Notez le "1" dans libxslt1-dev)

Ensuite, je viens d'installer lxml avec pip/easy_install.

6
gonz

Beaucoup de réponses ici sont plutôt anciennes,
grâce au pointeur de @Simplans ( https://stackoverflow.com/a/37759871/417747 ) et du page d'accueil ...

Ce qui a fonctionné pour moi (Ubuntu bionic):

Sudo apt-get install python3-lxml  

(+ Sudo apt-get install libxml2-dev libxslt1-dev j'ai installé avant, mais je ne suis pas sûr que ce soit toujours nécessaire)

1
NSGaga

Commencez par installer le paquet python-lxml d'Ubuntu et ses dépendances:

Sudo apt-get install python-lxml

Ensuite, utilisez pip pour mettre à jour la dernière version de lxml pour Python:

pip install lxml
0
Joseph

À partir d’Ubuntu 18.4 (Bionic Beaver), il est conseillé d’utiliser apt au lieu d’apt-get car sa forme structurelle est bien meilleure.

Sudo apt install libxml2-dev libxslt1-dev python-dev

Si vous êtes satisfait d'une version éventuellement plus ancienne de lxml, vous pouvez essayer

Sudo apt install python-lxml
0
Rarblack