Я пытаюсь запустить проект Python3, и у меня возникают проблемы с пониманием того, как настроить каталог проекта, чтобы я мог импортировать модули и повторно использовать код. Я уже исследовал бесчисленные примеры переполнения стека и поисков в Google, но, кажется, ничто не объясняет это ясно (или, может быть, я просто не правильно понимаю).
Допустим, у меня есть следующий каталог проекта:
+my_project
|----src
| |---- calculate.py
| |---- distribute.py
|
|----helpers
| |---- calculate_helpers.py
| |---- distribute_helpers.py
|
|----main.py
Учитывая приведенный выше каталог проекта, допустим, у меня есть 3 сценария ios:
В моем src/calculate.py
я хочу использовать метод, определенный в helpers/calculate_helpers.py
. Я попытался импортировать файл через import helpers.calculate_helpers
и from helpers.calculate_helpers import calculate_task
. Однако я всегда получаю ошибку Module not found
.
В моем helpers/calculate_helpers.py
я хочу использовать метод, определенный в helpers/distribute.py
. На этот раз я, кажется, могу import distribute
и затем получить доступ к методам, определенным в этом модуле.
В моем main.py
я хочу использовать метод, определенный в src/distribute.py
. Если у меня просто есть import src.distribute
, это не будет работать, но если я добавлю __init__.py
файл в каталог src
, то import src.distribute
будет работать. Насколько я понимаю из чтения документов , __init__.py
файлы больше не нужны, но я могу ошибаться.
Можете ли вы помочь мне понять, почему (1 ) и (3) не работают, почему (2) работает, и как лучше всего Python импортировать модули из разных вложенных каталогов?