Comment ré-installer lxml?
Je suis à l'aide de python 2,7.5 sur mac 10.7.5, beautifulsoup 4.2.1. Je vais analyser une page xml à l'aide de la lxml de la bibliothèque, comme cela est enseigné dans le beautifulsoup tutoriel. Cependant, lorsque je lance mon code, il montre
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested:
lxml,xml. Do you need to install a parser library?
Je suis sûr que j'ai déjà installé lxml par toutes les méthodes: easy_install, pip, port, etc. J'ai essayé d'ajouter une ligne à mon code pour voir si lxml est installé ou pas:
import lxml
Puis python peut juste réussi à aller par le biais de ce code et d'afficher le message d'erreur précédent encore, survenant à la même ligne.
Donc, je suis tout à fait sûr que lxml a été installé, mais il n'est pas installé correctement. J'ai donc décidé de désinstaller lxml, puis ré-installer à l'aide d'une "bonne" méthode. Mais quand je tape dans
easy_install -m lxml
il montre:
Searching for lxml
Best match: lxml 3.2.1
Processing lxml-3.2.1-py2.7-macosx-10.6-intel.egg
Using /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml-
3.2.1-py2.7-macosx-10.6-intel.egg
Because this distribution was installed --multi-version, before you can
import modules from this package in an application, you will need to
'import pkg_resources' and then use a 'require()' call similar to one of
these examples, in order to select the desired version:
pkg_resources.require("lxml") # latest installed version
pkg_resources.require("lxml==3.2.1") # this exact version
pkg_resources.require("lxml>=3.2.1") # this version or higher
Processing dependencies for lxml
Finished processing dependencies for lxml
Donc je ne sais pas comment faire pour continuer mes désinstaller...
J'ai regardé de nombreux messages au sujet de cette question sur google mais je ne peux pas trouver toutes les infos utiles.
Voici mon code:
import mechanize
from bs4 import BeautifulSoup
import lxml
class count:
def __init__(self,protein):
self.proteinCode = protein
self.br = mechanize.Browser()
def first_search(self):
#Test 0
soup = BeautifulSoup(self.br.open("http://www.ncbi.nlm.nih.gov/protein/21225921?report=genbank&log$=prottop&blast_rank=1&RID=YGJHMSET015"), ['lxml','xml'])
return
if __name__=='__main__':
proteinCode = sys.argv[1]
gogogo = count(proteinCode)
Je veux savoir:
- Comment puis-je désinstaller lxml?
- Comment puis-je installer lxml "correct"? Comment puis-je savoir qu'il est correctement installé?
OriginalL'auteur Mark23333 | 2013-07-20
Vous devez vous connecter pour publier un commentaire.
Je suis avec BeautifulSoup 4.3.2 et OS X 10.6.8. J'ai aussi un problème avec mal installé
lxml
. Voici quelques choses que j'ai trouvé:Tout d'abord, vérifiez cette question connexe: Retiré MacPorts, maintenant Python est cassé
Maintenant, afin de vérifier les constructeurs pour BeautifulSoup 4 sont installés, essayez
Si vous ne voyez pas votre préféré builder, alors il n'est pas installé, et vous voyez un message d'erreur comme ci-dessus ("impossible de trouver un arbre du générateur de...").
Aussi, juste parce que vous pouvez
import lxml
, ne signifie pas que tout est parfait.Essayer
De comprendre ce qu'il se passe, accédez à la
bs4
d'installation et d'ouvrir l'œuf (tar -xvzf
). Avis des modulesbs4.builder
. A l'intérieur vous devriez voir les fichiers tels que_lxml.py
et_html5lib.py
. Ainsi, vous pouvez également essayerSi il y a un problème, on va le voir, pourquoi un parricular module ne peut pas être chargé. Vous pouvez remarquer que, à la fin de
builder/__init__.py
il charge tous les modules et ignore tout ce qui était pas chargé:Depuis
lxml
manquait sur ma machine, effectuersudo pip install lxml
résolu le problème pour moi.En outre, cette étape peut également être nécessaire lors de l'installation de lxml: stackoverflow.com/questions/19548011/...
OriginalL'auteur osa
Si vous utilisez Python2.7 dans Ubuntu/Debian, cela a fonctionné pour moi:
Tester:
OriginalL'auteur Mona Jalal
FWIW, je suis tombé sur un problème similaire (python 3.6, os x 10.12.6) et a été en mesure de le résoudre simplement en train de faire (première commande est juste pour signifier que je travaillais dans une conda virtualenv):
J'ai essayé plusieurs choses compliquées d'abord, parce que BeautifulSoup fonctionnait correctement avec un nombre identique de commande par le biais de Jupyter+iPython, mais pas par le biais de PyCharm du terminal dans le même virtualenv. Simplement de réinstaller lxml comme ci-dessus ont résolu le problème.
OriginalL'auteur basse
apt-get sur Debian/Ubuntu:
sudo apt-get install python3-lxml
Pour MacOS-X, un macport de lxml est disponible. Essayez quelque chose comme
sudo port install py27-lxml
http://lxml.de/installation.html peut être utile.
OriginalL'auteur Michael