Я использовал команду pip install beautifulsoup4
, чтобы установить beautifulsoup, однако, после того, как я попытался импортировать его и не смог, я нашел что-то интересное, есть только папка с информацией о яйцах, но нет папки с скриптами, может кто-нибудь сказать мне, почему и как это решить? Я знаю, что могу просто получить скрипт и перенести его в папку sitepackages, и мне понравилось, и это работает, но я чувствую, что это плохая идея.Почему есть только информация о яйце без реальных модулей, когда я использую pip install beautifulsoup?
ответ
Когда вы устанавливаете beautifulsoup4
с pip
, вы устанавливаете распределение от этого имени. Папка .egg-info
pip
создает при установке того, что дистрибутив назван в честь распространения (плюс версия и архитектура python).
Дистрибутив содержит один или несколько пакетов или модулей, и они устанавливаются в папку site-packages
рядом в каталог .egg-info
. Названия этих пакетов или модулей необязательно соответствуют имени распространения.
Для BeautifulSoup 4 в дистрибутиве содержится один пакет с именем bs4
.
Вы можете проверить это сами; внутри директории .egg-info
является файл с именем installed-files.txt
, в котором перечислены все связанные с ним файлы (используя относительные пути):
$ cat lib/python2.7/site-packages/beautifulsoup4*.egg-info/installed-files.txt
../bs4/__init__.py
../bs4/dammit.py
../bs4/diagnose.py
../bs4/element.py
../bs4/testing.py
../bs4/builder/__init__.py
../bs4/builder/_html5lib.py
../bs4/builder/_htmlparser.py
../bs4/builder/_lxml.py
../bs4/tests/__init__.py
../bs4/tests/test_builder_registry.py
../bs4/tests/test_docs.py
../bs4/tests/test_html5lib.py
../bs4/tests/test_htmlparser.py
../bs4/tests/test_lxml.py
../bs4/tests/test_soup.py
../bs4/tests/test_tree.py
../bs4/__init__.pyc
../bs4/dammit.pyc
../bs4/diagnose.pyc
../bs4/element.pyc
../bs4/testing.pyc
../bs4/builder/__init__.pyc
../bs4/builder/_html5lib.pyc
../bs4/builder/_htmlparser.pyc
../bs4/builder/_lxml.pyc
../bs4/tests/__init__.pyc
../bs4/tests/test_builder_registry.pyc
../bs4/tests/test_docs.pyc
../bs4/tests/test_html5lib.pyc
../bs4/tests/test_htmlparser.pyc
../bs4/tests/test_lxml.pyc
../bs4/tests/test_soup.pyc
../bs4/tests/test_tree.pyc
./
dependency_links.txt
PKG-INFO
SOURCES.txt
top_level.txt
Спасибо, Martijn, очень хорошее объяснение – litaoshen
Там также должен быть 'bs4' папки в' сайта-packages', он там? Как вы пытались импортировать его? Это должен быть 'import bs4'. –
Да, я нашел его! Я думал, что у него должно быть что-то вроде папки beautifulsoup4, которая заставляет меня автоматически игнорировать короткие имена ... спасибо. Я импортировал его как 'from BeautifulSoup import *', но теперь, вероятно, просто «из bs4 import *», правильно? – litaoshen
Правильно –