Импорт bs4 в Python 3.5

Я установил как Python 3.5, так и Beautifulsoup4. Когда я пытаюсь импортировать bs4, я получаю ошибку ниже. Есть ли какое-либо исправление для этого? Или я должен просто установить Python 3.4 вместо этого? Пожалуйста, будьте очень ясны - я новичок в программировании. Большое спасибо!

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python 3.5\lib\sit-packages\bs4\__init__.py", line 30, in    <module>
   from .builder import builder_registry, ParserRejectionMarkup
  File "C:\Python 3.5\lib\sit-packages\bs4\__init__.py", line 308, in <module>
   from . import _htmlparser
  File "C:\Python 3.5\lib\sit-packages\bs4\_htmlparser.py", line 7, in <module>
   from html.parser import ( 
ImportError: cannot import name 'HTMLParseError'

Ответы

Ответ 1

Обновление: Начиная с 4.4.0, BeautifulSoup совместим с Python 3.5. Обновление:

pip install --upgrade beautifulsoup4

Старый ответ:

Из-за изменений, сделанных для Исключить строгий режим HTMLParser:

Проблема №15114: строгий режим и аргумент HTMLParser, HTMLParser.error и исключение HTMLParserError были удалены.

Я боюсь, что beautifulSoup4 не совместим с Python 3.5 на данный момент. Используйте Python 3.4.

Ответ 2

Обновление: BeautifulSoup 4.4.0 был обновлен, чтобы быть совместимым с python3.5, поэтому pip install --upgrade beautifulsoup4 должен сделать трюк, если вы все еще сталкиваетесь с этой проблемой.

Ответ 3

Я отправил автору сообщение об этой ошибке. Если вы хотите установить BeautifulSoup на Python 3.5a, я загрузил рабочий патч исходного кода в github.

https://github.com/jjangsangy/BeautifulSoup4

Вы можете установить его с помощью setup.py или просто скопировать и вставить этот код в терминал.

git clone https://github.com/jjangsangy/BeautifulSoup4 \
    && cd BeautifulSoup4 \
    && python3.5 setup.py install

Я предполагаю, что с тех пор, как вы пытаетесь выполнить 3.5a, ваш интерпретатор python устанавливается с соответствующими разрешениями пользователя для вашего каталога site-packages, поэтому не требуется вызов sudo.