Пакетные менеджеры и виртуальное окружение

1. Пакетные менеджеры

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

1.1 pip

  • Стандартный пакетный менеджер Python.

  • Команды:

# Установка пакета
pip install requests

# Установка конкретной версии
pip install requests==2.31.0

# Обновление пакета
pip install --upgrade requests

# Удаление пакета
pip uninstall requests

# Просмотр установленных пакетов
pip list

1.2 Poetry

  • Современный инструмент для управления зависимостями и виртуальными окружениями.

  • Позволяет фиксировать версии и создавать pyproject.toml.

poetry init       # создать проект
poetry add pytest  # добавить пакет
poetry install     # установить зависимости

1.3 Conda

  • Используется в основном для научных проектов и Data Science, управляет пакетами и окружениями.

conda create -n myenv python=3.11
conda activate myenv
conda install numpy

2. Виртуальное окружение

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

  • Позволяет избежать конфликтов зависимостей между проектами.

2.1 Создание виртуального окружения

# стандартный способ
python -m venv venv_name

# активация
# Windows
venv_name\Scripts\activate
# macOS/Linux
source venv_name/bin/activate

# деактивация
deactivate

2.2 Применение с pip

pip install selenium
  • Установленные пакеты будут только внутри виртуального окружения.


3. Применение в автотестах

  • Изоляция тестового проекта:

    • Разные проекты могут использовать разные версии Selenium, pytest, requests.

  • Удобство в CI/CD:

    • Можно создавать чистое окружение для каждого билда.

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

pip freeze > requirements.txt
pip install -r requirements.txt

💡 Вывод:

  • pip = стандартный менеджер пакетов.

  • virtualenv / venv = создание изолированной среды.

  • Poetry / Conda = продвинутые инструменты для управления зависимостями.

  • В автотестах виртуальные окружения помогают избежать конфликтов версий и обеспечить стабильность тестов.

Last updated

Was this helpful?