Относительный импорт в Python позволяет импортировать модули или пакеты из текущего рабочего каталога или из относительного пути внутри проекта, а не из стандартных путей поиска модулей.
Существует несколько способов выполнить относительный импорт в Python, я расскажу о двух самых распространенных способах:
1. **Относительный импорт модуля:**
Предположим, у вас есть следующая структура проекта:
project/ __init__.py main.py utils/ __init__.py helper.py
Если вы хотите импортировать модуль helper.py
в файл main.py
, вы можете сделать это следующим образом:
from .utils import helper
В данном случае .
означает текущий пакет или модуль, из которого происходит импорт.
2. **Относительный импорт пакета:**
Если вам нужно импортировать пакет, находящийся в другом месте относительно текущего модуля, вы можете использовать дополнительные точки для указания уровня иерархии. Например, если у вас есть структура:
project/ __init__.py package/ __init__.py module.py subpackage/ __init__.py sub_module.py main.py
Из модуля main.py
вы хотите импортировать модуль module.py
, который находится в пакете package
, вы можете сделать это так:
from .package import module
В данном случае .
указывает на текущий пакет, а затем имя пакета, относительно которого вы выполняете импорт.
Относительный импорт в Python позволяет более явно указывать пути к модулям и позволяет лучше организовывать структуру проекта, уменьшая шанс конфликтов и ошибок.