Сломанная установка l xml в venv не может использоваться с beautifulsoup4 - PullRequest
0 голосов
/ 06 мая 2020

Я создал виртуальную среду для использования с tenorflow. Я выполнил инструкции здесь :

virtualenv --system-site-packages -p python3 ./venv

Я установил необходимые модули, включая beautiful soup 4 (bs4) и l xml с использованием

pip install beautifulsoup4
pip install lxml

, что казалось успешным. Но когда я пытаюсь разобрать файл xml, я получаю сообщение об ошибке, как будто я не установил l xml:

with open(path/to/xml.file)) as f:
    soup = BeautifulSoup(f, 'xml')

bs4.FeatureNotFound: Не удалось найти построитель дерева с запрошенными функциями: xml. Вам нужно установить библиотеку парсера?

Если я попробую другие парсеры работать должным образом (или что-то в этом роде):

soup = BeautifulSoup(f, 'html.parser')

похоже, работают нормально, а:

soup = BeautifulSoup(f, 'html5lib') 

загружается успешно, но xml не читает должным образом. Это не проблема.

По какой-то причине моя установка l xml кажется сломанной.

Pip сообщает, что она установлена, но я не могу удалить или понизить ее до другой версии. Например:

pip uninstall lxml

Найдена существующая установка: l xml 3.5.0
Не удаляется l xml в / usr / lib / python3 / dist-packages, вне среды / home / xxxxx / tensorflow_1-15_GPU
Невозможно удалить 'l xml'. Не найдено файлов для удаления.

Кто-нибудь знает, как принудительно удалить l xml или хотя бы решить проблему?

Я с использованием Ubuntu 16.04, python 3.6, beautifulsoup4 4.4.1 и l xml 3.5.0

Изменить:
Недавно я переключился на python3 .6, и мне кажется, что мне не хватает некоторых библиотек . Попытка понизить версию l xml сообщает (среди прочего) об ошибке:

pyconfig.h: нет такого файла или каталога

, который может быть причиной моего сломанного модуля. У меня нет такого файла для python3 .6. Только python2 0,7 и python3 0,5 м (хотя мне интересно, что такое 3,5 м).

1 Ответ

0 голосов
/ 06 мая 2020

Как я уже упоминал при редактировании, было выдано сообщение об ошибке (только), когда я пытался перейти на более раннюю версию l xml:

pyconfig.h: нет такого файла или каталог

, который заставил меня проверить фактические библиотеки для python3 .6. Они отсутствовали, и после их установки с использованием:

sudo apt install python3.6-dev

проблема была устранена.

...