Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70% Забронировать скидку
07 Июл 2023
2 мин
1246

Импорт модулей из родительской папки в Python

Один из распространенных вопросов, которые могут возникнуть при работе с Python — это импорт модулей из родительской папки. Это может быть необходимостью,

Один из распространенных вопросов, которые могут возникнуть при работе с 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 и относительного импорта.

Добавить комментарий

Подарок
Забрать подарок