Как запустить виртуальное окружение Python: подробное пособие по активации
Активация виртуального окружения Python: основные подходы
Основное решение: встроенный модуль venv
Модуль venv входит в состав стандартной библиотеки Python, начиная с версии 3.3. Он позволяет создавать изолированные окружения, не требуя установки дополнительных пакетов. Для активации окружения необходимо сначала его создать, а затем выполнить соответствующую команду.
Создание окружения (пример для Linux/macOS):
python3 -m venv myenvPython 2 windows (python 2 на windows)
Активация на Linux/macOS (оболочка Bash):
source myenv/bin/activatePython 3 windows (python 3 на windows)
Активация на Windows (командная строка cmd.exe):
myenv\Scripts\activate.bat
Python 3.10 windows (python 3.10 на windows)
Активация на Windows (PowerShell):
myenv\Scripts\Activate.ps1Python 3.11 windows (python 3.11 на windows)
После успешной активации в командной строке появляется префикс с именем окружения, например (myenv). Деактивация выполняется командой deactivate.
Типичные проблемы и их решения:
- Ошибка выполнения скриптов в PowerShell (политика выполнения). Решение: запустить PowerShell от имени администратора и выполнить
Set-ExecutionPolicy RemoteSigned -Scope CurrentUserPython 3.12 windows (python 3.12 на windows)
или использоватьmyenv\Scripts\python.exePython 3.8 windows (python 3.8 на windows)
без активации. - Команда 'python' не найдена. Убедиться, что Python установлен и добавлен в PATH. Проверить:
python --versionPython windows 64 (python 64-bit на windows)
.
Вопрос: Как активировать виртуальное окружение на Windows через PowerShell?
Если PowerShell блокирует выполнение сценариев, можно временно изменить политику выполнения для текущей сессии:
powershell.exe -ExecutionPolicy Bypass -File myenv\Scripts\Activate.ps1Python для windows 10 (python для windows 10)
Или запустить прямо без активации, указав полный путь к интерпретатору: myenv\Scripts\python.exe.
Ошибка: 'Activate.ps1' не удается загрузить, так как выполнение сценариев отключено. Решение описано выше.
Вопрос: Как активировать окружение, созданное с помощью virtualenv?
Инструмент virtualenv работает аналогично venv, но может использоваться с Python 2 и более старыми версиями. Установка:
pip install virtualenvPython window (python на windows)
. Создание:virtualenv myenvPython windows 11 (python на windows 11)
. Активация - те же команды, что и для venv.Ошибка: 'virtualenv' не является внутренней или внешней командой. Убедиться, что Pip установлен и пути к исполняемым файлам корректны.
Вопрос: Как использовать pipenv для управления окружением и его активации?
pipenv объединяет управление зависимостями и виртуальными окружениями. Установка:
pip install pipenvPython windows 7 (python на windows 7)
. Создание и активация одновременно:pipenv shellPython windows 8 (python на windows 8)
. Выход:exitPython not found windows (python не найден в windows)
.Проблема: Команда pipenv shell может не найти подходящее окружение, если Pipfile отсутствует. Решение: сначала выполнить
pipenv installкак активировать среду python (активация среды python)
для создания Pipfile.Вопрос: Как активировать окружение Conda?
Conda - менеджер пакетов и окружений, популярный в научных вычислениях. Создание:
conda create --name myenvOpenpyxl python install (установка openpyxl через pip)
. Активация:conda activate myenv. Деактивация: conda deactivate.
Ошибка: 'conda' не распознается как команда. Необходимо установить Anaconda или Miniconda и добавить пути в переменную окружения PATH.
Вопрос: Как активировать окружение в Linux/macOS без модификации shell?
Можно временно выполнить команду активации в подоболочке:
(source myenv/bin/activate; python main.py). После выполнения дочерней оболочки основная среда не изменяется.
Особенность: такой способ полезен для автоматизации, но не позволяет получить интерактивную сессию с активацией.
Расширенные примеры использования активации виртуального окружения Python
Пример 1: Активация в различных оболочках и последствия
Рассмотрим создание окружения с именем dev и его активацию в трёх оболочках на Windows.
# Создание окружения (один раз)
C:\Users\user> python -m venv dev
# Командная строка cmd.exe
C:\Users\user> dev\Scripts\activate.bat
(dev) C:\Users\user> where python
C:\Users\user\dev\Scripts\python.exe
(dev) C:\Users\user> deactivate
C:\Users\user>
# PowerShell (с изменением политики выполнения)
PS C:\Users\user> Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
PS C:\Users\user> .\dev\Scripts\Activate.ps1
(dev) PS C:\Users\user> Get-Command python.exe | Select-Object Source
Source
-----
C:\Users\user\dev\Scripts\python.exe
(dev) PS C:\Users\user> deactivate.exe
PS C:\Users\user>
# Git Bash (MSYS2)
$ source dev/Scripts/activate
(dev) $ which python
/c/Users/user/dev/Scripts/python
(dev) $ deactivate
$
Вывод: активация изменяет путь к интерпретатору, позволяя использовать пакеты только из этого окружения.
Пример 2: Автоматическая активация окружения при входе в директорию
С помощью инструмента direnv (Linux/macOS) можно настроить автоматическую активацию.
# Установка direnv (пример для Ubuntu)
$ sudo apt install direnv
# Добавить в ~/.bashrc: eval "$(direnv hook bash)"
# Создание файла .envrc в корне проекта
$ echo "source dev/bin/activate" > .envrc
$ direnv allow .
direnv: loading ~/project/.envrc
(dev) $
При входе в директорию окружение активируется автоматически, при выходе - деактивируется.
Пример 3: Активация окружения в скрипте Python с проверкой
Иногда требуется программно активировать окружение внутри другого Python-скрипта (например, для запуска подпроцесса).
import subprocess
import sys
# Путь к активации
activate_script = "./dev/bin/activate"
# Запуск команды в активированном окружении
cmd = "python -c 'import sys; print(sys.executable)'"
process = subprocess.run(
["bash", "-c", f"source {activate_script} && {cmd}"],
capture_output=True, text=True
)
print("Результат:", process.stdout)
# Вывод: /home/user/dev/bin/python
Результат: /home/user/dev/bin/python
Пример 4: Использование poetry для управления окружением без явной активации
Poetry автоматически создаёт и использует виртуальное окружение. Команда poetry run выполняет команду внутри окружения без активации.
# Установка poetry
$ curl -sSL https://install.python-poetry.org | python3 -
# Создание проекта
$ poetry new myproject
$ cd myproject
# Добавление зависимости
$ poetry add requests
# Запуск скрипта
$ poetry run python -c "import requests; print(requests.__version__)"
2.31.0
Активация вручную: poetry shell.
Пример 5: Исправление ошибки 'No module named pip' в окружении
Иногда pip не устанавливается в окружение venv. Тогда его можно установить вручную.
# Создание окружения без pip (добавить флаг --without-pip)
$ python -m venv myenv --without-pip
$ source myenv/bin/activate
# Установка pip внутри окружения
$ python -m ensurepip --upgrade
# Проверка
$ pip list
Package Version
---------- -------
pip 24.0
Package Version ---------- ------- pip 24.0
Пример 6: Активация окружения Conda из скрипта bash
#!/bin/bash
# Файл: run_in_env.sh
source $(conda info --base)/etc/profile.d/conda.sh
conda activate myenv
python script.py
conda deactivate
Выполнение: bash run_in_env.sh. Результат: скрипт выполняется внутри окружения myenv.