Beautifulsoup не распознает lxml - программирование
Подтвердить что ты не робот

Beautifulsoup не распознает lxml

Я пытаюсь использовать lxml как синтаксический анализатор для BeautifulSoup, потому что по умолчанию MUCH медленнее, но я получаю эту ошибку:

    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, а также beautifulsoup много раз, однако он все равно его не прочитает. Я также попытался переустановить зависимости lxml, и я все еще получаю это.

Я даже создал новую виртуальную среду и установил все новое и все еще получаю эту ошибку.

Кто-нибудь знает, что здесь происходит?

редактирует

Использование последних версий bs4 и lxml на Python 2.7.x на рабочем столе ubuntu

i может 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)

У меня есть libxml, но я не уверен в версии, но я установил и переустановил последнюю. также попытался вручную установить 2.9.0 и еще ничего

4b9b3361

Ответ 1

Похоже, что lxml не был успешно установлен. Чтобы установить lxml на Ubuntu, запустите

sudo apt-get install libxslt1-dev libxml2

В virtualenv:

pip install --upgrade lxml
pip install cssselect

Ответ 2

Перейдите на следующие страницы:

загрузить исходные файлы для обоих пакетов. Разверните каждую из них в другую папку. Затем в каждой папке найдите файл setup.py и выполните следующую команду:

python setup.py install

У вас могут возникнуть проблемы с lxml. Если вы получили сообщение об ошибке, например

error: command 'gcc' failed with exit status 1

убедитесь, что вы установили libxml2-dev и libxslt1-dev, используя

sudo apt-get install libxml2-dev libxslt1-dev

Надеюсь, это сработает.