Проблема здесь в том, что библиотека (пока) не готова к Python3, как вы можете видеть здесь в комментарии к проблеме этой библиотеки. И это источник вашей проблемы. Как видите, нет проблем, если вы установите библиотеку для Python2 .7:
$ sudo apt install python-pip # or https://pip.pypa.io/en/stable/installing/
$ python --version
Python 2.7.17
$ python -m pip install pytldr
Successfully installed Pillow-6.2.2 beautifulsoup-3.2.2 cssselect-1.1.0 decorator-4.4.2 goose-extractor-1.0.25 jieba-0.42.1 lxml-4.5.0 networkx-2.2 nltk-3.4.5 numpy-1.16.6 pytldr-0.1.4 scikit-learn-0.20.4 scipy-1.2.3 singledispatch-3.4.0.3 six-1.14.0
Здесь вы можете увидеть, что все работает, потому что beautifulsoup-3.2.2 версия была установлена. Попытка выполнить ту же команду для Python3 приводит к опубликованной вами ошибке:
$ python3 --version
Python 3.6.9
$ python3 -m pip install pytldr
Collecting beautifulsoup
Using cached BeautifulSoup-3.2.2.tar.gz (32 kB)
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-12aluvvq/beautifulsoup/setup.py'"'"'; __file__='"'"'/tmp/pip-install-12aluvvq/beautifulsoup/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-12aluvvq/beautifulsoup/pip-egg-info
cwd: /tmp/pip-install-12aluvvq/beautifulsoup/
Complete output (6 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-12aluvvq/beautifulsoup/setup.py", line 3
"You're trying to run a very old release of Beautiful Soup under Python 3. This will not work."<>"Please use Beautiful Soup 4, available through the pip package 'beautifulsoup4'."
^
SyntaxError: invalid syntax
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Сообщение об ошибке очень четкое:
Вы пытаетесь запустить очень старый релиз Beautiful Soup под Python 3. Это не будет работать. Пожалуйста, используйте Beautiful Soup 4, доступный через пакет pip 'beautifulsoup4'.
Простая установка BeautifulSoup4 не решает проблему, поскольку библиотека все еще использует код для BeautifulSoup3 . Это зависимость пакета pytldr .
Теперь у вас есть несколько опций, может быть больше:
- Не используйте эту библиотеку.
- Используйте Python2 (Но это 2020 ).
- Уже существует открытый запрос на извлечение , который предлагает код, который предположительно обновил библиотеку, чтобы она соответствовала Python3. Вы можете собрать библиотеку из исходного кода с предоставленным там кодом (без гарантии, что это сработает) или подождать, пока запрос на получение ответа не будет утвержден (или написать автору).
- Go через вилки и посмотрите, кто-нибудь уже запустил библиотеку для Python3.
- Попробуйте обновить библиотеку самостоятельно и, возможно, с помощью 2to3 .
Вы, очевидно, также можете установить этот форк напрямую вместо шага 3. Конечно, в какой-то момент этот форк может быть устаревшим или может быть изменен таким образом, что это больше не годится для использования. Существует также опция , устанавливающая c commit . Но также нет гарантии, что это будет работать.