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

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

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

#### **1.1 pip**

* **Стандартный пакетный менеджер Python**.
* Команды:

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

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

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

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

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

#### **1.2 Poetry**

* Современный инструмент для **управления зависимостями и виртуальными окружениями**.
* Позволяет фиксировать версии и создавать `pyproject.toml`.

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

#### **1.3 Conda**

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

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

***

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

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

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

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

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

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

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

```bash
pip install selenium
```

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

***

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

* **Изоляция тестового проекта**:
  * Разные проекты могут использовать разные версии Selenium, pytest, requests.
* **Удобство в CI/CD**:
  * Можно создавать чистое окружение для каждого билда.
* **Фиксация зависимостей**:

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

***

💡 **Вывод:**

* **pip** = стандартный менеджер пакетов.
* **virtualenv / venv** = создание изолированной среды.
* **Poetry / Conda** = продвинутые инструменты для управления зависимостями.
* В автотестах виртуальные окружения помогают **избежать конфликтов версий и обеспечить стабильность тестов**.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kaze.gitbook.io/qa-theory/osnovy-programmirovaniya-na-python/paketnye-menedzhery-i-virtualnoe-okruzhenie.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
