Я пытаюсь создать пакет python, установить его локально и получить доступ к подмодулю subtext
Это моя структура каталогов:
funniest/
|
-- setup.py
-- funniest/
|
-- __init__.py
-- text.py
-- sub/
|
-- __init__.py
-- subtext.py
funniest/text.py
:
def joke():
return "very funny"
funniest/sub/subtext.py
- это:
def joke2():
return "my joke!"
funniest/funniest/__init__.py
:
from .text import joke
- Я запускаю
python setup.py
из корневого каталога для установки пакета.
- Я
cd
в другой каталог и запускаю python3
.
- Теперь я могу
import funniest
и позвонить funniest.joke()
Однако я не могу получить доступ к joke2
в подпункте. Если я попытаюсь добавить строку from sub.subtext import joke2
к funniest/funniest/__init__.py
, то при импорте пакета произойдет сбой:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.7/site-packages/funniest/__init__.py", line 2, in <module>
from sub.subtext import joke2 as joke2
ModuleNotFoundError: No module named 'sub'
Примечание: мне все равно, как я могу получить доступ к подмодулям, мне даже не нужно импортировать их в __init__.py
, я просто хочу разрешить доступ ко всем модулям в пакете. Как мне это сделать?