Назад к вопросам
Junior
70
questionbank
Как создать пакет в Python?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Создание пакета в Python включает несколько шагов:
-
Создание директории пакета. Название директории будет являться названием пакета.
-
Создание файла
__init__.py. Этот файл делает директорию пакетом. Он может быть пустым, но часто используется для:- Инициализации пакета.
- Определения
__all__для контроля импорта. - Импорта подмодулей или объектов внутрь пакета.
-
Создание модулей (файлов .py) внутри директории пакета. Каждый файл
.pyвнутри пакета является модулем. -
(Опционально) Создание подпакетов. Другие директории с файлами
__init__.pyвнутри основного пакета. -
(Опционально) Создание сопроводительных файлов. Например,
README.md,LICENSE,setup.py.
Пример структуры:
my_package/
├── __init__.py
├── module_a.py
├── module_b.py
└── sub_package/
├── __init__.py
└── module_c.py
Содержимое файлов:
#__init__.py
# Можно импортировать что-то из модулей сразу
from .module_a import my_function_a
__all__ = ['my_function_a'] # Определяет, что импортируется при 'from my_package import *'
#module_a.py
def my_function_a():
print("Hello from module A!")
#module_b.py
def my_function_b():
print("Hello from module B!")
#sub_package/__init__.py
# Импорт из модуля внутри подпакета
from .module_c import my_function_c
#sub_package/module_c.py
def my_function_c():
print("Hello from module C in sub_package!")
Использование пакета:
# В другом файле, находящемся вне директории my_package
# Импорт модуля
import my_package.module_b
my_package.module_b.my_function_b()
# Импорт функции напрямую (если она в __all__ или явно импортирована в __init__.py)
from my_package import my_function_a
my_function_a()
# Импорт из подпакета
from my_package.sub_package import my_function_c
my_function_c()