Что такое модуль и пакет? Как работает import?

import — это механизм, который находит модуль по его имени, загружает его (если он ещё не загружен) и привязывает к имени в текущем модуле. Модуль — это один .py-файл, пакет — каталог с модулями (обычно с __init__.py), который образует пространство имён и может содержать подпакеты.
Подробный ответ

Чтобы не держать весь код в одном файле, Python использует модули и пакеты.

Модуль

Модуль — это просто один .py-файл, который можно импортировать.

# файл math_utils.py
def add(a, b):
    return a + b

Использование в другом файле:

import math_utils

result = math_utils.add(2, 3)

Пакет

Пакет — это каталог с модулями (и, как правило, файлом __init__.py), который образует пространство имён и может содержать подпакеты.

myapp/
    __init__.py
    models.py
    views.py
    utils/
        __init__.py
        helpers.py

Импорт из пакета:

from myapp import models
from myapp.utils import helpers

Как работает import

Когда интерпретатор встречает import, он:

  • ищет модуль по имени в определённых местах (стандартная библиотека, установленные пакеты, текущий проект);

  • если модуль ещё не загружен, выполняет его код один раз и создаёт объект модуля;

  • сохраняет объект в sys.modules, чтобы при повторных import не загружать его заново;

  • присваивает модуль (или объекты из него) имени в текущем пространстве имён.

Разные формы импорта:

import math              # math.sin
from math import sin     # sin
import myapp.utils as u  # u.helpers()

Как ответить на собеседовании

Модуль — это отдельный Python‑файл, пакет — каталог с модулями, который образует пространство имён. Оператор import находит модуль по имени, при необходимости загружает его и привязывает к имени в текущем файле, чтобы можно было использовать его функции и классы.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге