2014-01-24 50 views
10

我試圖用lxml的解析器BeautifulSoup因爲默認的要慢得多,但是我得到這個錯誤:beautifulsoup不會承認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? 

我已經卸載和重新安裝LXML以及作爲美麗的許多次,但它仍然不會閱讀它。我試過重新安裝lxml依賴關係,我仍然得到這個。

我甚至做了一個新的虛擬環境,並安裝了新鮮的東西,仍然得到這個錯誤。

任何人都知道這裏發生了什麼?

編輯

使用BS4和LXML關於Python 2.7.x的最新版本的Ubuntu桌面上

我可以import lxml但我不能from lxml import etree即返回:

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) 

我有然而,我不確定版本,但我安裝並重新安裝了最新版本。還試圖手動安裝2.9.0,但仍然沒有任何東西

+0

我假設你有最新版本的bs4和lxml,以及相當新的Python 2.7.x,對不對? (不管怎樣編輯你的問題的版本號。) – abarnert

+0

另外,你測試'lxml'本身以確保它的工作? – abarnert

+0

'site-packages/bs4/builder/_lxml.py'是否存在? – unutbu

回答

7

它看起來像lxml尚未成功安裝。要在Ubuntu上安裝lxml,運行

sudo apt-get install libxslt1-dev libxml2 

在的virtualenv:

pip install --upgrade lxml 
pip install cssselect 
+0

我已卸載並重新安裝lxml至少20次。依然沒有。也嘗試安裝依賴關係,它說他們都已經安裝 – robz228

+0

還依賴返回'已經是最新版本' – robz228

+0

它可能有助於卸載並重新安裝lxml一次,併發布您正在使用的命令。 – unutbu

1

轉到這些頁面:

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

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

下載這兩個軟件包的源文件。將其中的每個展開到不同的文件夾中。然後,每個文件夾中找到setup.py文件並運行以下命令:

python setup.py install 

你可能會遇到一些問題LXML。如果你得到

error: command 'gcc' failed with exit status 1 

錯誤請確保您使用

sudo apt-get install libxml2-dev libxslt1-dev 

希望這應該工作的libxml2安裝-dev的& libxslt1-dev的。