tariel.ge › Полезное: бесплатные книги › Программирование: от нулей и единиц до PythonБесплатно · автор Тариел Бежанидзе
← Учебник по программированию ЛИСТ 20БЛОК 4 — PYTHON НА ПРАКТИКЕРЕВ. 1
Глава 20 · Python на практике

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

Первая глава практического блока — и первое место, где терминал из блока 2 снова понадобится напрямую: установка сторонних инструментов происходит именно оттуда, а не внутри самого Python-кода.

import — подключение готового кода

import math
print(math.sqrt(16)) # 4.0

from math import sqrt # импорт конкретной функции без префикса math.
print(sqrt(16))

import math as m # импорт с сокращённым псевдонимом
print(m.sqrt(16))

Стандартная библиотека — "батарейки в комплекте"

Python поставляется с обширной стандартной библиотекой — множеством готовых модулей, доступных сразу после установки, без отдельной загрузки: math (математические функции), random (случайные числа), datetime (работа с датой и временем), и десятки других. Это осознанная философия языка — "батарейки в комплекте": для многих типичных задач не нужно ничего устанавливать дополнительно.

pip — установка того, чего нет в стандартной библиотеке

Для всего остального существует pip — менеджер пакетов Python, устанавливающий сторонние библиотеки из PyPI (Python Package Index, публичный каталог пакетов). Команда набирается прямо в терминале (глава 09–12), а не внутри самого Python-кода:

$ pip install requests # установить библиотеку для HTTP-запросов (глава 25)

Виртуальные окружения — изоляция проектов друг от друга

Зачем это вообще нужно

Разные проекты на одном компьютере могут требовать разных (иногда несовместимых) версий одной и той же библиотеки. Если устанавливать все пакеты в одно общее "глобальное" окружение Python, рано или поздно возникнет конфликт — обновление для одного проекта сломает другой. Виртуальное окружение — изолированная копия набора установленных пакетов для конкретного проекта, не пересекающаяся с остальными.

$ python3 -m venv myenv # создать виртуальное окружение в папке myenv
$ source myenv/bin/activate # активировать — macOS/Linux (глава 09)
$ myenv\Scripts\activate # активировать — Windows (глава 10)
$ deactivate # выйти из виртуального окружения

Обрати внимание на разницу команды активации между системами — прямое практическое применение различий путей и синтаксиса, разобранных в главах 09–10: команда для macOS использует прямой слэш и команду source, команда для Windows — обратный слэш без неё.

requirements.txt — как поделиться списком зависимостей

$ pip freeze > requirements.txt # сохранить список установленных пакетов и их версий в файл
$ pip install -r requirements.txt # установить всё из этого списка на другой машине

Файл requirements.txt — стандартный способ зафиксировать, какие именно пакеты (и какие именно их версии) нужны проекту, чтобы другой человек — или ты сам на другом компьютере — мог воссоздать точно такое же рабочее окружение одной командой.

Собственный модуль — любой .py файл

Модуль в Python — это буквально любой файл с расширением .py, который можно импортировать из другого файла:

# файл helpers.py
def greet(name):
    return f"Привет, {name}!"

# файл main.py, в той же папке
import helpers
print(helpers.greet("Тариэл"))

if __name__ == "__main__" — важная идиома

# файл helpers.py
def greet(name):
    return f"Привет, {name}!"

if __name__ == "__main__":
    print(greet("Тест")) # выполнится только при прямом запуске этого файла

Каждый файл Python имеет встроенную переменную __name__. Когда файл запускается напрямую (python3 helpers.py), она равна "__main__". Когда тот же файл импортируется как модуль из другого файла, она равна имени модуля, а не "__main__". Эта проверка позволяет писать код, который выполняется только при прямом запуске файла (например, тестовый вызов функции для проверки), но не выполняется при обычном импорте этого файла как библиотеки в другом проекте.

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

Если модуль — один файл, то пакет — папка, содержащая несколько связанных модулей и специальный файл __init__.py, помечающий папку как единый импортируемый пакет. Для задач этой книги достаточно понимания на уровне отдельных модулей — структура пакетов становится актуальной по мере роста проекта за пределы одного-двух файлов.

Что дальше

Следующая глава — обработка ошибок: что происходит, когда что-то в программе идёт не так, и как реагировать на это осознанно, а не позволять программе просто аварийно завершиться.

Глава20 — Модули, пакеты, pip
Блок4 — Python на практике
Далее21 — Обработка ошибок
СтатусГотово · рев. 1
Предыдущая глава ← 19 · Файлы: чтение и запись Следующая глава 21 · Обработка ошибок →

Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.