Статьи

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

pip и виртуальные окружения

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

Менеджер пакетов pip

pip устанавливает пакеты из индекса PyPI:

pip install requestspip install requests==2.32.3pip install "requests>=2.30,<3"pip install --upgrade requestspip uninstall requestspip listpip show requests

Безопаснее вызывать pip как модуль конкретного интерпретатора:

python -m pip install requests

Виртуальные окружения

Виртуальное окружение изолирует зависимости проекта от системного Python и от других проектов.

Создание:

python -m venv .venv

Активация:

source .venv/bin/activate
.venv\Scripts\activate

После активации python и pip относятся к окружению. Выход:

deactivate

Папку .venv не добавляют в репозиторий — внесите её в .gitignore.

Файл requirements.txt

Фиксация зависимостей:

pip freeze > requirements.txt

Установка на другой машине:

pip install -r requirements.txt

Пример файла:

requests==2.32.3flask>=3.0

Рекомендуемая структура проекта

project/    .venv/    .gitignore    requirements.txt    README.md    src/        app/            __init__.py            main.py            config.py    tests/        test_main.py

Запуск модуля

Пакет запускается как модуль:

python -m app.main

Для этого в пакете может лежать файл __main__.py.

Аргументы командной строки

import argparseparser = argparse.ArgumentParser(description="Пример программы")parser.add_argument("path")parser.add_argument("-v", "--verbose", action="store_true")parser.add_argument("-n", "--count", type=int, default=1)args = parser.parse_args()print(args.path, args.verbose, args.count)

Логирование

import logginglogging.basicConfig(    level=logging.INFO,    format="%(asctime)s %(levelname)s %(name)s: %(message)s",)log = logging.getLogger(__name__)log.info("запуск")log.warning("предупреждение")log.error("ошибка")

Используйте logging вместо print в любых программах, кроме совсем простых скриптов.

Задания

  1. Создайте виртуальное окружение, установите requests и выполните GET-запрос к любому публичному API.
  2. Напишите утилиту с argparse, принимающую путь к папке и выводящую количество файлов в ней.