2014-01-24 13 views
10

Ich bin versucht lxml als Parser für BeautifulSoup zu verwenden, da der Standard eines viel langsamer ist, aber bin ich diesen Fehler:beautifulsoup wont erkennt lxml

soup = BeautifulSoup(html, "lxml") 
    File "/home/rob/python/stock/local/lib/python2.7/site-packages/bs4/__init__.py", line 152, in __init__ 
    % ",".join(features)) 
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library? 

Ich habe deinstalliert und lxml auch neu installiert als beautifulsoup viele Male, aber es wird immer noch nicht lesen. Ich habe versucht, lxml Abhängigkeiten neu installiert, und ich bekomme immer noch dies.

Ich habe sogar eine neue virtuelle Umgebung und installiert alles frisch und immer noch diesen Fehler.

Wer hat eine Idee, was hier los ist?

Edits

Mit neuesten Versionen von BS4 und lxml auf Python 2.7.x auf Ubuntu Desktop

i import lxml kann, aber ich kann nicht from lxml import etree, die Rückkehr ist:

File "<stdin>", line 1, in <module> 
ImportError: /usr/lib/x86_64-linux-gnu/libxml2.so.2: version `LIBXML2_2.9.0' not found (required by /home/rob/python/stock/local/lib/python2.7/site-packages/lxml/etree.so) 

ich habe libxml aber ich bin mir nicht sicher, die Version, aber ich installierte und neu installiert die neueste. auch versucht, 2.9.0 manuell zu installieren und immer noch nichts

+0

Ich nehme an, Sie haben die neuesten Versionen von bs4 und lxml, und eine einigermaßen aktuelle Python 2.7.x, oder? (Könnte sowieso die Versionsnummern in Ihre Frage bearbeiten.) – abarnert

+0

Haben Sie 'lxml' auch selbst getestet, um sicherzustellen, dass es funktioniert? – abarnert

+0

Sind 'site-packages/bs4/builder/_lxml.py' vorhanden? – unutbu

Antwort

7

Es sieht aus wie lxml wurde nicht erfolgreich installiert. So installieren Sie lxml auf Ubuntu laufen

sudo apt-get install libxslt1-dev libxml2 

In virtualenv:

pip install --upgrade lxml 
pip install cssselect 
+0

Ich habe lxml mindestens 20 mal deinstalliert und neu installiert. immer noch nichts. auch versucht, Abhängigkeiten zu installieren und es heißt, sie sind alle bereits installiert – robz228

+0

auch die Abhängigkeiten Rückkehr 'ist bereits die neueste Version' – robz228

+0

Es könnte helfen, lxml noch einmal zu deinstallieren und neu zu installieren, und die Befehle, die Sie verwenden. – unutbu

1

Gehen zu diesen Seiten:

  1. https://pypi.python.org/pypi/cssselect

  2. https://pypi.python.org/pypi/lxml/3.2.5

laden Sie die Quelldateien für beide Pakete herunter. Erweitern Sie jeden von ihnen in einen anderen Ordner. Dann in jedem Ordner die setup.py Datei und den folgenden Befehl ausführen:

python setup.py install 

Sie in einige Probleme mit lxml laufen können. Wenn Sie einen Fehler wie

error: command 'gcc' failed with exit status 1 

erhalten stellen Sie sicher,

sudo apt-get install libxml2-dev libxslt1-dev 

Hoffentlich mit libxml2-dev & libxslt1-dev installieren, das funktionieren sollte.