ImportError: Модуль без имени bs4 (BeautifulSoup)


138

Я работаю в Python и использую Flask. Когда я запускаю свой основной файл Python на моем компьютере, он работает отлично, но когда я активирую venv и запускаю файл Flask Python в терминале, он говорит, что мой основной файл Python имеет «No Module Named bs4». Любые комментарии или советы с благодарностью.


3
... вы установили bs4 в virtualenv?
Колин Данклау

1
нет, я использую Ubuntu и использую "easy_install beautifulsoup4"
Harryt

Ответы:


215

Активируйте virtualenv, а затем установите BeautifulSoup4:

$ pip install BeautifulSoup4

Когда вы установили bs4с easy_install, вы установили его для всей системы. Таким образом, ваш системный питон может импортировать его, но не ваш виртуальный питон. Если вам не нужно bs4устанавливать в системный путь python, удалите его и сохраните его в своем virtualenv.

Для получения дополнительной информации о virtualenvs, прочитайте это


4
Представьте себе (для примера), что вы работаете над проектом, который требует определенной версии модуля. Вы также можете работать над другим проектом, требующим другой версии этого модуля. Если каждый проект находится в virtualenvs, у вас будет две абсолютно независимые среды Python вместо системной среды Python с двумя версиями одного и того же модуля. Держите вашу систему чистой. Работа в virtualenvs.
Balthazar Rouberol

1
Я не могу установить, получаю ошибку locale.Error: unsupported locale settingУ вас есть идеи?
coderInrRain

Я не могу по-настоящему угадать без трассировки, но взгляните на stackoverflow.com/questions/14547631/…
Бальтазар Рубероль

Также помните, что если вы используете venv, вы должны использовать двоичный файл python из этого venv . /usr/bin/python(на Mac OS) не так; так и должно быть<your path to your venv>/bin/python
joemadeus

Мне пришлось выйти () Python, чтобы установка PIP работала :)
Eoin

54

Для python2.x :

sudo pip install BeautifulSoup4

Для python3 :

sudo apt-get install python3-bs4

3
На официальном сайте crummy.comне удалось python3-bs4указать название пакета.
Сурадж

1
для python 3 тоже sudo pip install BeautifulSoup4работает
ishandutta2007

13

Просто отметив ответ Бальтазара. Бег

pip install BeautifulSoup4

не работал для меня. Вместо этого используйте

pip install beautifulsoup4


5

Если вы используете Anaconda для управления пакетами, выполните следующие действия:

conda install -c anaconda beautifulsoup4


1
Опция "-c anaconda" используется по умолчанию, поэтому "conda install beautifulsoup4" делает то же самое и ее легче запомнить :-)
PatrickT

5

Если вы используете Pycharm , перейдите на preferences - project interpreter - install bs4.

Если вы попытаетесь установить BeautifulSoup , он все равно покажет, что ни один модуль не назван bs4.


4

Я посоветую вам удалить библиотеку bs4 с помощью этой команды:

pip uninstall bs4

и затем установите его с помощью этой команды:

sudo apt-get установить python3-bs4

Я столкнулся с той же проблемой в Linux Ubuntu, когда использовал следующую команду для установки библиотеки bs4:

pip install bs4





1

Я сделал то, что сказал @ rayid-ali, за исключением того, что я на машине с Windows 10, поэтому я оставил sudo. То есть я сделал следующее:

python3 -m pip install bs4

и это сработало как пашарм. Работал как шарм в любом случае.


0

Самым простым является использование easy_install.

easy_install bs4 

Это будет работать, если пипс потерпит неудачу.


0

Для Python 2 было написано много учебников / ссылок, в которых говорится, что вы можете использовать pip install somename. Если вы используете Python 3, вы хотите изменить его на pip3 установить somename.


0

Вы можете попробовать установить bs4 с

pip install --ignore-installed BeautifulSoup4

если вышеуказанные методы не сработали для вас.



0

Приложение к исходному запросу: modules.py

help('modules')

$python modules.py

В нем указано, что модуль bs4 уже установлен.

_codecs_kr          blinker             json                six
_codecs_tw          brotli              kaitaistruct        smtpd
_collections        bs4                 keyword             smtplib
_collections_abc    builtins            ldap3               sndhdr
_compat_pickle      bz2                 lib2to3             socket

Правильное решение:

pip install --upgrade bs4

Должен решить проблему.

Мало того, он покажет ту же ошибку и для других модулей. Таким образом, вы должны выполнить команду pip таким же образом, как описано выше для этих модулей с ошибками.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.