Статьи

Учебные материалы по языку Python — от основ до продвинутых тем

Модули и пакеты

Страница 11 из 34 · 2026-10-26 · 2 мин чтения

Модули

Модуль — это обычный файл .py. Допустим, есть файл mathutils.py:

PI = 3.14159def circle_area(radius):    return PI * radius ** 2

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

import mathutilsprint(mathutils.circle_area(2))

Формы импорта

import mathimport math as mfrom math import sqrtfrom math import sqrt, pifrom math import sqrt as root

Импорт from module import * подтягивает все публичные имена и засоряет пространство имён, поэтому его следует избегать.

Поиск модулей

Интерпретатор ищет модуль по списку sys.path: текущая папка, пути из PYTHONPATH, стандартная библиотека и site-packages.

import sysprint(sys.path)

Конструкция __name__

Если файл запускается напрямую, __name__ равно "__main__". При импорте — имени модуля:

def main():    print("запуск")if __name__ == "__main__":    main()

Это позволяет использовать файл и как модуль, и как программу.

Пакеты

Пакет — папка с модулями:

project/    main.py    shop/        __init__.py        cart.py        prices.py

Файл __init__.py может быть пустым или содержать код инициализации пакета.

from shop import cartfrom shop.prices import get_price

Относительные импорты

Внутри пакета можно ссылаться на соседние модули:

from . import pricesfrom .prices import get_pricefrom ..common import helpers

Полезные модули стандартной библиотеки

МодульНазначение
os, pathlibРабота с файловой системой
sysПараметры интерпретатора, аргументы командной строки
math, random, statisticsМатематика и случайные числа
datetime, timeДата и время
json, csvФорматы данных
reРегулярные выражения
collections, itertools, functoolsСтруктуры данных и инструменты
argparseАргументы командной строки
loggingЖурналирование
unittestТестирование

Пример:

import randomfrom datetime import datetimefrom pathlib import Pathprint(random.randint(1, 10))print(datetime.now().strftime("%Y-%m-%d"))print(Path.cwd())

Задания

  1. Вынесите несколько функций из прошлых уроков в собственный модуль и импортируйте их.
  2. Создайте пакет из двух модулей и вызовите функцию из одного модуля в другом через относительный импорт.