Один из распространенных вопросов, которые могут возникнуть при работе с Python — это импорт модулей из родительской папки. Это может быть необходимостью, если модули, содержащиеся в отдельных подпапках проекта, должны обмениваться функциональностью.
Представим типичную структуру папок проекта:
my_project/
main_module.py
subfolder/
sub_module.py
В этом случае, возможно, возникнет необходимость импортировать main_module.py
в sub_module.py
, что может вызвать некоторые трудности.
Один из способов это сделать — это изменить системный путь Python, но это не всегда является лучшим решением, так как может вызвать проблемы с другими путями в проекте.
Более предпочтительным решением является использование пакетов в Python. Для этого в каждой папке проекта должен быть файл __init__.py
.
Тогда структура проекта будет выглядеть следующим образом:
my_project/
__init__.py
main_module.py
subfolder/
__init__.py
sub_module.py
Файл __init__.py
может быть пустым, он используется Python для идентификации папки как пакета.
Теперь, чтобы импортировать main_module.py
в sub_module.py
, можно использовать следующий синтаксис:
from .. import main_module
Две точки перед именем модуля указывают Python на то, что нужно искать в родительской папке. Если бы родительская папка была на уровень выше, можно было бы использовать три точки и так далее.
Таким образом, проблема импорта модулей из родительской папки может быть эффективно решена с помощью пакетов Python и относительного импорта.
Добавить комментарий