Виртуальное окружение Python: создание и конфигурация

Раздел: Настройка -> Виртуальное окружение Python

Создание виртуального окружения с помощью встроенного модуля venv

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

Начиная с Python 3.3 в стандартную библиотеку входит модуль venv. Это рекомендуемый способ создания виртуальных окружений, так как он не требует внешних зависимостей и полностью поддерживается разработчиками языка.

python3 -m venv myenv

как создать виртуальную среду python (создание виртуальной среды python)

Команда создаёт директорию myenv с копией интерпретатора Python и стандартной библиотеки. После создания окружение необходимо активировать.

# Linux/macOS
source myenv/bin/activate

# Windows (cmd)
myenv\Scripts\activate

# Windows (PowerShell)
.\myenv\Scripts\Activate.ps1

После активации в начале командной строки появится префикс (myenv). Теперь все установленные пакеты будут изолированы от глобальной системы.

Типичная ошибка: при активации в Windows PowerShell может появиться сообщение о запрете выполнения сценариев. Решение - запустить PowerShell от имени администратора и выполнить:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

После этого активация должна работать.

Другая проблема: если команда python3 не найдена, попробуйте python или укажите полный путь к интерпретатору.

Как использовать virtualenv для совместимости с Python 2 или старыми проектами?

Пакет virtualenv является предшественником venv и поддерживает Python 2.7. Для установки требуется pip:

pip install virtualenv
virtualenv myenv -p python3.8

Параметр -p позволяет явно указать версию интерпретатора. Активация и работа не отличаются от venv.

Если virtualenv не устанавливается из-за прав, стоит использовать --user:

pip install --user virtualenv

Как создать окружение с управлением зависимостями через Pipenv?

Pipenv объединяет управление пакетами и виртуальными окружениями. После установки (pip install pipenv) создаётся проект с файлами Pipfile и Pipfile.lock.

pipenv install requests
pipenv shell

Команда pipenv install автоматически создаёт виртуальное окружение, если его нет, и устанавливает пакет. pipenv shell активирует среду.

Ошибка: если Pipenv не может найти версию Python, нужно задать её в файле .env или через PIPENV_PYTHON.

Как использовать Poetry для продвинутого управления зависимостями?

Poetry предлагает современный подход с pyproject.toml. Установка:

pip install poetry
poetry new myproject
cd myproject
poetry add flask

poetry new создаёт структуру проекта, poetry add устанавливает пакет в виртуальное окружение. Активация: poetry shell.

Как создать изолированное окружение для научных вычислений с Conda?

Conda от Anaconda подходит для проектов с не-Python зависимостями (C, R). Команда:

conda create -n myenv python=3.10 numpy pandas
conda activate myenv

Минус - большой размер установленной Conda (около 500 МБ). Альтернатива - Miniconda.

При использовании Conda с существующим venv возможны конфликты путей. Рекомендуется удалить все переменные окружения PYTHONPATH перед созданием среды.

Расширенные примеры работы с виртуальными окружениями

1. Создание окружения с указанием конкретной версии Python через pyenv + venv

Если требуется версия Python, отсутствующая в системе, можно использовать pyenv:

Пример
# Установка pyenv (Linux/macOS)
curl https://pyenv.run | bash
pyenv install 3.11.5
pyenv local 3.11.5
python -m venv myenv_3_11

Результат: создаётся окружение, использующее Python 3.11.5, установленный pyenv.

$ python --version
Python 3.11.5
$ source myenv_3_11/bin/activate
(myenv_3_11) $ python --version
Python 3.11.5

2. Использование requirements.txt с разными окружениями

Зафиксировать зависимости после активации:

Пример
pip freeze > requirements.txt
# Затем в новом окружении:
pip install -r requirements.txt

Проблема: pip freeze выводит все установленные пакеты, включая зависимости. Для чистоты лучше использовать pip list --format=freeze или инструменты вроде pip-tools.

3. Создание временного окружения для тестирования

Модуль tempfile позволяет создать окружение в оперативной памяти:

Пример
import tempfile
import subprocess
import venv

with tempfile.TemporaryDirectory() as tmpdir:
    venv.create(tmpdir, with_pip=True)
    subprocess.run([f"{tmpdir}/bin/pip", "install", "pytest"])
    # запуск тестов...

Этот подход полезен в CI/CD, когда не нужно сохранять окружение после завершения.

4. Скрипт автоматической активации при входе в директорию (direnv)

Утилита direnv автоматически загружает окружение при cd в папку. Файл .envrc:

Пример
layout python3

При входе в директорию direnv выполнит python3 -m venv и активирует окружение. Результат в терминале:

direnv: loading .envrc
direnv: export +VIRTUAL_ENV

5. Клонирование существующего окружения

С помощью virtualenv-clone можно скопировать окружение в другую папку:

Пример
pip install virtualenv-clone
virtualenv-clone source_env target_env

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

Создание виртуальной среды Python - comments

En
как создать виртуальную среду python (python)