Как изолировать зависимости для нескольких Python-проектов на одном компьютере?

«Как изолировать зависимости для нескольких Python-проектов на одном компьютере?» — вопрос из категории Devops, который задают на 10% собеседований Python Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Стандартным инструментом для этого является модуль venv.

Основной процесс работы с venv:

  1. Создание окружения В директории проекта выполните команду, где venv — это стандартное имя для папки окружения:

    # Linux/macOS
    python3 -m venv venv
    
    # Windows
    py -m venv venv
  2. Активация окружения После активации pip будет устанавливать пакеты в папку venv, а не глобально.

    # Linux/macOS
    source venv/bin/activate
    
    # Windows (Command Prompt)
    .venvScriptsactivate.bat
    
    # Windows (PowerShell)
    .venvScriptsActivate.ps1
  3. Установка зависимостей Устанавливайте пакеты, как обычно. Они будут привязаны только к этому проекту.

    pip install requests numpy
    pip freeze > requirements.txt
  4. Деактивация Для выхода из виртуального окружения используйте команду:

    deactivate

Инструменты для продвинутого управления:

  • Poetry или Pipenv: автоматизируют создание окружений и управление зависимостями через файлы pyproject.toml или Pipfile, что является более современной практикой.
  • pyenv: позволяет управлять несколькими версиями самого Python на одной машине.