Erreur d'importation pour en python lxml
J'ai écrit un script il y a quelques temps que contiennent
from lxml import etree
Mais, malheureusement, il ne fonctionne plus.
Dans le doute j'ai vérifié l'installation avec :
sudo apt-get install python-lxml
sudo pip install lxml
sudo apt-get install libxml2-dev
sudo apt-get install libxslt1-dev
J'ai vérifié si elle pourrait être ma version de python avec :
me@pc:~$ python
Python 2.7.3 (default, Sep 14 2012, 14:11:57)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named lxml
Mon os est ubuntu 12.04.1 LTS avec Python 2.7.3.
Tout semble très bien. Je ne vois pas quel pourrait être le problème.
RÉSOLU:
Enfin de l'importation du programme etree avec
from xml import etree
Ne sais pas pourquoi et si il y a une différence mais ça fonctionne comme prévu.
C'est ce que
Quel a été le résultat de
Quelle a été la sortie de
Je ne pense pas que la création d'un virtualenv pour chaque script est efficace. sudo pip install lxml de sortie est : une Exigence déjà satisfaits (utilisation --mise à niveau pour mettre à niveau): lxml dans /usr/local/lib/python2.7/dist-packages de Nettoyage des...
Lorsque vous importez des
virtualenv
a été faite pour.Quel a été le résultat de
pip install lxml
- il semble étrange que les bibliothèques nécessaires à la compilation, sont à venir après...Quelle a été la sortie de
sudo pip install lxml
? En outre, si vous souhaitez utiliser pip
pour installer lxml
, vous aurez besoin pour installer le python-dev
paquet.Je ne pense pas que la création d'un virtualenv pour chaque script est efficace. sudo pip install lxml de sortie est : une Exigence déjà satisfaits (utilisation --mise à niveau pour mettre à niveau): lxml dans /usr/local/lib/python2.7/dist-packages de Nettoyage des...
Lorsque vous importez des
etree
de xml
vous sont pas obtenir le même module que le etree
module fourni par lxml
. Si vous ne pouvez pas importer des lxml
alors que le module n'est pas installé où votre Python peut le trouver.
OriginalL'auteur user1254498 | 2013-01-09
Vous devez vous connecter pour publier un commentaire.
Votre solution de cité dans l'édition, qui utilisent le xml.programme etree au lieu de lxml.programme etree n'est pas la meilleure manière de le faire, que ces modules ont connu incompatibilités, et surtout parce lxml est certainement plus optimisé.
Une bonne manière de faire un environnement plus propre disponible est d'utiliser virtualenv :
Ensuite, utilisez ./bin/python pour l'exécution de votre script.
Les avantages de cette méthode sont :
Comme une référence, un plus puissant mais un peu plus complexe manière d'y parvenir est d'utiliser buildout, mais il peut ressemble à la chasse les mouches avec un bazooka si vous voulez juste pour exécuter un simple fichier de script.
OriginalL'auteur Alexis Huet
Résolu le problème.
Il semble qu'un logiciel que j'ai installé foiré mon python path. Le python que j'ai utilisé lors de l'appel de python dans un terminal a été installé par le logiciel, et l'un appelé par mon script est installé sur mon système.
Donc, j'ai juste enlevé le python chemin d'accès du logiciel à partir de la variable de chemin d'accès de bash.
sudo easy_install lxml
montre:Building against libxml2/libxslt in the following directory: /Applications/MAMP/Library/lib .......... /tmp/easy_install-KzJaeI/lxml-3.2.5/src/lxml/includes/etree_defs.h:9:10: fatal error: 'libxml/xmlversion.h' file not found
. La commandeecho $PATH
affiche$ echo $PATH /Applications/MAMP/Library/bin:/Applications/MAMP/bin/php/php5.5.26/bin:/Users/admin/.composer/vendor/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
OriginalL'auteur user1254498
J'ai eu ce problème lors de l'exécution des tests dans PyCharm. J'ai pu importer lxml lors de l'utilisation du terminal et de l'environnement virtuel, mais en utilisant le même environnement virtuel pour exécuter les tests ont abouti à la ImportError.
Dans mon cas, la mise à niveau de lxml 3.3.5 à 4.2.5 résolu le problème.
OriginalL'auteur James Bradbury
Pour Python 3.6, il est très délicat.
J'ai le même problème et essayez d'installer la version la plus récente, lxml 3.8. Mais j'ai toujours l'erreur. Puis-je utiliser lxml 3.7.3, alors c'est ok.
grâce damonxu, même ici. lxml 3.8 erreur d'importation, d'après la désinstallation de 3,8 et l'installation de 3.7.3 sa fonctionne bien
OriginalL'auteur damonxu