Структура каталогов:
<root>/
setup.py
foo.py
Примечание: файла __init__.py
нет.
Вы можете использовать distribute
для указания зависимостей, setup.py
:
from setuptools import setup
setup(name='foo',
version='0.9.0',
py_modules=['foo'],
install_requires=['BeautifulSoup >= X.X.X'],
)
Будет установлена необходимая версия BeautifulSoup
, если она еще не установлена.Вам не нужно указывать BeautifulSoup
в этом случае.
Если вы не хотите устанавливать BeautifulSoup
автоматически:
<root>/
setup.py
foobar/
__init__.py
foo.py
BeautifulSoup/
__init__.py
BeautifulSoup.py
etc.
setup.py:
from setuptools import setup, find_packages
setup(name='foobar',
version='0.9.0',
packages=find_packages(),
) #NOTE: no install_requires
Где-то в ваших модулях:
import pkg_resources
try:
pkg_resources.require("BeautifulSoup>=X.X.X")
except pkg_resources.ResolutionError:
from foobar import BeautifulSoup
else:
import BeautifulSoup
Это менее желательный и необычный метод.