доступ к подмодулю из локального пакета в Python - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь создать пакет 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
  1. Я запускаю python setup.py из корневого каталога для установки пакета.
  2. Я cd в другой каталог и запускаю python3.
  3. Теперь я могу 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, я просто хочу разрешить доступ ко всем модулям в пакете. Как мне это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...