2014-04-04 1 views
1

Я использовал команду pip install beautifulsoup4, чтобы установить beautifulsoup, однако, после того, как я попытался импортировать его и не смог, я нашел что-то интересное, есть только папка с информацией о яйцах, но нет папки с скриптами, может кто-нибудь сказать мне, почему и как это решить? Я знаю, что могу просто получить скрипт и перенести его в папку sitepackages, и мне понравилось, и это работает, но я чувствую, что это плохая идея.Почему есть только информация о яйце без реальных модулей, когда я использую pip install beautifulsoup?

+1

Там также должен быть 'bs4' папки в' сайта-packages', он там? Как вы пытались импортировать его? Это должен быть 'import bs4'. –

+0

Да, я нашел его! Я думал, что у него должно быть что-то вроде папки beautifulsoup4, которая заставляет меня автоматически игнорировать короткие имена ... спасибо. Я импортировал его как 'from BeautifulSoup import *', но теперь, вероятно, просто «из bs4 import *», правильно? – litaoshen

+0

Правильно –

ответ

5

Когда вы устанавливаете beautifulsoup4 с pip, вы устанавливаете распределение от этого имени. Папка .egg-infopip создает при установке того, что дистрибутив назван в честь распространения (плюс версия и архитектура 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 
+0

Спасибо, Martijn, очень хорошее объяснение – litaoshen