В Python модули и пакеты помогают организовать код, переиспользовать функции и поддерживать проект в порядке. Это одна из базовых тем для новичков и обязательная практика для реальной разработки.
Что такое модуль
Модуль — это обычный файл с расширением .py, в котором находятся функции, классы и переменные.
Пример файла math_utils.py:
def add(a, b):
return a + b
Импорт в другом файле:
import math_utils
print(math_utils.add(2, 3))
Способы импорта
Импорт всего модуля:
import math_utilsИмпорт конкретной функции:
from math_utils import add print(add(2, 3))Импорт с псевдонимом:
import math_utils as mu print(mu.add(2, 3))
Что такое пакет
Пакет — это папка, в которой лежат модули. Он нужен для структурирования большого проекта.
Пример структуры:
project/
│
├── main.py
└── utils/
├── __init__.py
└── math_utils.py
Импорт из пакета:
from utils import math_utils
print(math_utils.add(5, 7))
Или так:
from utils.math_utils import add
print(add(5, 7))
Зачем нужен __init__.py
Файл __init__.py показывает, что директория работает как пакет. В современных версиях Python он не всегда обязателен, но его часто оставляют для совместимости и явной структуры проекта.
Как Python ищет модули
- в текущей папке
- в стандартной библиотеке
- в установленных внешних пакетах
Посмотреть пути поиска можно так:
import sys
print(sys.path)
Частые ошибки
🔹 ModuleNotFoundError — Python не нашёл модуль
Причины:- неправильное имя файла
- неверная структура проекта
- запуск скрипта не из той директории
🔹 циклический импорт
Возникает, когда два модуля импортируют друг друга. Лучше выносить общую логику в третий модуль.🔹 конфликт имён
Не называйте файлrandom.py,sys.py,json.py— это может перекрыть стандартные модули Python.
Практический совет
Для небольших скриптов достаточно модулей, а для приложений, ботов, API и библиотек лучше сразу использовать пакеты. Это упростит поддержку, тестирование и масштабирование проекта ⚙️
Короткий вывод
- Модуль = один
.pyфайл - Пакет = папка с модулями
- Импорт = способ подключить готовый код в другой части программы 💡
Полезная привычка Python-разработчика — с самого начала раскладывать код по модулям и пакетам, а не писать всё в одном файле. Это делает проект чище, понятнее и профессиональнее 🚀
Заодно стоит заглянуть в подборку каналов про IT — там часто публикуют полезные разборы Python, архитектуры проектов и практику разработки 📚