У меня очень сложный модуль, и я хочу разбить подпакеты на отдельные пакеты. Моя первая попытка будет для субмодуля "Утилиты". Я хочу иметь возможность импортировать все из родительского пакета example_utils.py
в example_module.utils
, но я также хочу, чтобы example_module.utils
также имел свои собственные функции.
В конце я хочу иметь возможность сделать следующее:
import example_module as em
x = 10
y1 = em.utils.f_parent1(x)
y2 = em.utils.f_child1(x)
# and do this
from example_module.utils import f_parent1, f_child1
# and use the parent module as a standalone
from example_utils import f_parent1, f_parent2
Как я могу структурировать свой дочерний модуль example_module
, чтобы иметь эту функцию? * *
Утилиты модуля сохранены как отдельный автономный модуль example_utils.py
def f_parent1(x):
return x
def f_parent2(x,y):
return x+y
Этот модуль будет установлен в моей среде:
pip install path/to/example_module
Большой модуль (example_module
), использующий example_utils
в качестве зависимости
# Directory structure for larger Module
example_module
|++++| __init__.py
|++++| utils
|++++| ++++ | __init__.py
|++++| ++++ | utils.py
Содержимое |++++| ++++ | __init__.py
from .utils import *
Содержимое |++++| ++++ | utils.py
from example_utils import *
def f_child1(x):
return x**2
Содержимое |++++| __init__.py
__version__= "0.1"
__developmental__ = True
# Utilities
from .utils import utils
# =======
# Direct Exports
# =======
_submodules = ["utils"]
__all__ = sorted(__all__)
Заранее извиняюсь, если namespace
не является правильным срок. Я путаюсь с namespace
, scope
, et c.