← Назад ко всем вопросам

Как ты управляешь зависимостями: venv, pip, requirements.txt (или Poetry)?

1️⃣ Как кратко ответить

Для управления зависимостями в проектах AQA я использую venv для создания изолированных виртуальных окружений, pip для установки пакетов, requirements.txt для фиксации версий зависимостей и их воспроизведения. Также применяю Poetry для более удобного управления зависимостями и версионирования, а также для автоматизации создания и публикации пакетов.

2️⃣ Подробное объяснение темы

Управление зависимостями в проектах автоматизации тестирования (AQA) — это важный аспект, который позволяет обеспечить стабильность и воспроизводимость тестов. Рассмотрим основные инструменты, которые используются для этой цели.

venv

venv — это модуль Python, который позволяет создавать изолированные виртуальные окружения. Виртуальное окружение — это отдельная среда, в которой можно устанавливать пакеты Python, не влияя на системные библиотеки и другие проекты.

Пример использования:

# Создание виртуального окружения
python -m venv myenv
​
# Активация виртуального окружения
# Windows
myenv\Scripts\activate
# macOS/Linux
source myenv/bin/activate
​
# Деактивация виртуального окружения
deactivate
  • python -m venv myenv: Создает новое виртуальное окружение в папке myenv.
  • activate: Активирует виртуальное окружение, изменяя путь к исполняемым файлам Python.
  • deactivate: Возвращает в системное окружение.

pip

pip — это стандартный инструмент для установки пакетов Python. Он работает в связке с venv для установки зависимостей в виртуальное окружение.

Пример использования:

# Установка пакета
pip install requests
​
# Установка пакетов из файла requirements.txt
pip install -r requirements.txt
​
# Сохранение установленных пакетов в файл
pip freeze > requirements.txt
  • pip install requests: Устанавливает пакет requests в активированное виртуальное окружение.
  • pip install -r requirements.txt: Устанавливает все пакеты, перечисленные в requirements.txt.
  • pip freeze > requirements.txt: Сохраняет текущие версии всех установленных пакетов в requirements.txt.

requirements.txt

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

Пример содержимого:

requests==2.25.1
pytest==6.2.2
  • requests==2.25.1: Указывает, что для работы проекта требуется версия 2.25.1 пакета requests.
  • pytest==6.2.2: Указывает на необходимость версии 6.2.2 пакета pytest.

Poetry

Poetry — это инструмент для управления зависимостями и упаковки Python-проектов. Он предоставляет более удобный интерфейс для работы с зависимостями и автоматизирует многие задачи, такие как создание и публикация пакетов.

Пример использования:

# Инициализация нового проекта
poetry init
​
# Установка пакета
poetry add requests
​
# Установка всех зависимостей
poetry install
​
# Запуск скрипта в окружении Poetry
poetry run python script.py
  • poetry init: Создает файл pyproject.toml, в котором хранятся все зависимости и настройки проекта.
  • poetry add requests: Устанавливает пакет requests и автоматически добавляет его в pyproject.toml.
  • poetry install: Устанавливает все зависимости, указанные в pyproject.toml.
  • poetry run python script.py: Запускает скрипт script.py в окружении, созданном Poetry.

Использование этих инструментов позволяет эффективно управлять зависимостями, обеспечивая стабильность и воспроизводимость тестовых сред в проектах автоматизации.

Тема: Python
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки