Олег Марков
Инициализация пакетов Python
Введение
Пакеты в Python позволяют структурировать код, разделять функциональность на модули и обеспечивать удобный импорт между файлами. Правильная организация пакетов делает проект более читаемым и поддерживаемым. В этой статье мы разберём, как создавать и инициализировать пакеты в Python, а также использовать их в проектах. В этой статье мы разберём эти процессы на практике.
Создание пакета
Пакет — это директория с файлами Python, содержащая файл __init__.py. Наличие этого файла позволяет Python распознавать директорию как пакет.
Пример структуры проекта:
my_project/
│
├── my_package/
│ ├── __init__.py
│ ├── module1.py
│ └── module2.py
└── main.pyФайл __init__.py может быть пустым или содержать инициализацию пакета:
# my_package/__init__.py
from .module1 import func1
from .module2 import func2
__all__ = ["func1", "func2"]Импорт модулей из пакета
После создания пакета можно импортировать функции и классы в других файлах:
# main.py
from my_package import func1, func2
func1()
func2()Использование пакетов упрощает организацию кода и повторное использование функций в разных частях проекта.
Для системного изучения структуры Python-проектов, работы с модулями и пакетами рекомендуем курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажёры для практики 24/7, решение задач с ревью наставника и еженедельные встречи помогут закрепить навыки работы с пакетами и модулями.
Структурирование вложенных пакетов
Пакеты могут содержать вложенные пакеты:
my_project/
└── my_package/
├── __init__.py
├── subpackage/
│ ├── __init__.py
│ └── submodule.py
└── module1.pyИмпорт из вложенного пакета:
from my_package.subpackage.submodule import sub_func
sub_func()Частые ошибки
- Отсутствие файла
__init__.pyв пакете — Python не распознаёт папку как пакет. - Конфликты имен при импортировании модулей с одинаковыми именами.
- Некорректный относительный импорт внутри пакета.
Частозадаваемые вопросы
Можно ли создавать пакет без __init__.py?
Python 3.3+ поддерживает namespace packages, но наличие __init__.py делает пакет явным и совместимым со всеми инструментами.
Как импортировать вложенные пакеты?
Используйте точечную нотацию: from package.subpackage import module.
Можно ли использовать относительные импорты?
Да, например from .module1 import func1 внутри пакета.
Заключение
Инициализация пакетов в Python упрощает организацию кода, позволяет структурировать проект и повторно использовать функциональность. Правильная структура пакетов повышает читаемость и поддерживаемость проектов.
Для закрепления навыков работы с пакетами, модулями и структурой проектов рекомендуем курс Основы Python. В первых 3 модулях доступно бесплатное содержание — вы сможете практиковаться с созданием пакетов и импортом модулей до изучения полного курса.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев