Beautiful Soup не запускается в интерфейсе командной строки - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь заставить красивый суп работать в клипе с python 3, чтобы я мог поиграть и выяснить, как его лучше всего использовать.Я установил его через pip.

pip3 list

показывает

Package        Version
-------------- -------
beautifulsoup4 4.8.0  

Однако, когда я запускаю Python3 CLI и пытаюсь импортировать красивый суп для игры, я получаю сообщение об ошибке:

>>> import beautifulsoup4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'beautifulsoup4'

Я также пытался импортировать bs4 через CLI, но это странно:

>>> import bs4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/derekchapman/Google Drive/Code/Python/p4e/bs4/__init__.py", line 48
    'You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work.'<>'You need to convert the code, either by installing it (`python setup.py install`) or by running 2to3 (`2to3 -w bs4`).'

У меня установлен и работает python3, и если я импортирую bs4 в мой код, он работает без ошибок.

Ответы [ 2 ]

3 голосов
/ 19 сентября 2019

Путь в сообщении об ошибке /Users/derekchapman/Google Drive/Code/Python/ предполагает, что у вас есть пользовательская папка, которую вы добавили в PYTHONPATH.В этой папке у вас установлена ​​python2 версия beautifulsoup, и когда вы import, ваш python интерпретатор сначала найдет этот модуль, поскольку переменная окружения PYTHONPATH не зависит от версии Python.

Теперь у вас есть несколько вариантов:

  1. удалить эту папку из вашего PYTHONPATH, однако это может нарушить некоторые из ваших python2 кодов, для которых вы, вероятно, добавили их в первую очередь
  2. Удалите beautifulsoup4 из этой папки, но это будет иметь то же предостережение, что и 1-й метод
  3. Наиболее стабильный и моя рекомендация, если вы хотите придерживаться наличия нескольких версий Python: Очистите PYTHONPATHи удалите пользовательские версии Python, а затем используйте виртуальные среды для управления различными версиями Python и установками модулей
0 голосов
/ 19 сентября 2019

Согласно документам вы должны импортировать bs4 следующим образом:

from bs4 import BeautifulSoup

Затем вы можете инициализировать суп с помощью следующей строки:

soup = BeautifulSoup('<html></html>', 'html.parser')

Примечаниечто первым параметром является HTML-документ в виде строки.

...