Запуск виртуального окружения Python в операционной системе Windows

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

Способы активации виртуального окружения Python в Windows

Наиболее распространённый способ активации виртуального окружения в Windows - использование скрипта activate.bat для командной строки (cmd). Предполагается, что окружение уже создано с помощью python -m venv myenv или virtualenv myenv. После создания в папке окружения (myenv) появляется подпапка Scripts, содержащая файлы активации. Для активации в cmd необходимо перейти в корневую папку проекта и выполнить команду:

myenv\Scripts\activate

Python venv ubuntu (создать виртуальное окружение python в ubuntu)

В результате слева от приглашения командной строки появится название окружения (например, (myenv)), что сигнализирует об успешной активации. Теперь все команды python и pip будут использовать интерпретатор и библиотеки именно из этого окружения, а не глобальные. Отключение окружения выполняется командой deactivate.

Как активировать окружение в PowerShell?

В Windows PowerShell скрипт активации имеет расширение .ps1:

myenv\Scripts\Activate.ps1

Python activate window (активация виртуального окружения python в windows)

Проблема: При выполнении может появиться ошибка “cannot be loaded because running scripts is disabled on this system”. Это связано с политикой выполнения скриптов PowerShell. Решение: Запустить PowerShell от имени администратора и изменить политику:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Python venv exit (выход из виртуального окружения python)

После этого активация будет работать. Альтернатива - использовать командную строку cmd вместо PowerShell.

Как активировать окружение из Git Bash или MinGW?

В Git Bash (и других окружениях, эмулирующих Unix), скрипт activate без расширения не работает напрямую. Следует использовать:

source myenv/Scripts/activate

Venv python version (версия python в виртуальном окружении)

Обратите внимание на прямой слэш. Если окружение создано в Windows, но используется Bash, пути с обратными слэшами могут не распознаваться.

Что делать, если папка окружения расположена не в текущей директории?

Можно указать полный путь:

C:\projects\myproject\myenv\Scripts\activate

Python venv commands (команды виртуального окружения python)

В PowerShell полный путь с пробелами следует брать в кавычки:

"C:\My Project\env\Scripts\Activate.ps1"

Python django venv (настройка виртуального окружения для django)

Как отключить виртуальное окружение?

Для деактивации в любой оболочке достаточно выполнить команду deactivate. Эта команда обычно доступна только внутри активного окружения. После её выполнения приглашение возвращается к обычному виду, и Python переключается на глобальную установку.

Можно ли активировать окружение автоматически при запуске скрипта?

При написании автоматизированных скриптов (например, batch или PowerShell) можно вставить команду активации внутрь файла. Для batch-файла run.bat:

@echo off
call myenv\Scripts\activate
python main.py
deactivate

Python venv linux (использование виртуального окружения на linux)

В PowerShell скрипте run.ps1:

myenv\Scripts\Activate.ps1
python main.py
deactivate

Такой подход гарантирует, что код выполняется в изолированном окружении.

- Venv python 3 (создание виртуального окружения с python 3)
- Python venv install packages (установка пакетов в виртуальное окружение python)

Дополнительные примеры активации и типичные сценарии.

Расширенные примеры

Пример 1: Активация в cmd с проверкой путей

Создадим окружение env, активируем его и убедимся, что используется локальный интерпретатор.

Пример
python -m venv env
env\Scripts\activate
where python
(env) C:\project>where python
C:\project\env\Scripts\python.exe
C:\Windows\py.exe  (если есть глобальная установка)

Как видно, первый найденный python.exe находится внутри окружения.

Пример 2: Активация в PowerShell с разрешением выполнения скриптов

Если политика выполнения заблокирована, можно временно разрешить выполнение только для текущей сессии:

Пример
PowerShell -ExecutionPolicy Bypass -File env\Scripts\Activate.ps1

Либо использовать однострочник без изменения политики:

Пример
powershell -NoProfile -ExecutionPolicy Bypass -Command "& { . .\env\Scripts\Activate.ps1; python --version }"

Этот подход удобен в CI/CD средах, где нет прав администратора.

Пример 3: Активация в Visual Studio Code (терминал VS Code)

Если открыть терминал внутри VS Code (Ctrl+`), то активация выполняется обычным способом. Для удобства VS Code автоматически активирует окружение, если в папке проекта найден интерпретатор. После активации приглашение меняется, и запуск скрипта через F5 использует выбранное окружение.

Пример
env\Scripts\activate

Выбор интерпретатора вручную: Ctrl+Shift+P, команда Python: Select Interpreter, затем указать путь к env\Scripts\python.exe. После этого активация не обязательна, так как VS Code подставляет нужный python в терминал.

Пример 4: Ошибка “не является внутренней или внешней командой”

Если при попытке выполнить myenv\Scripts\activate появляется сообщение “activate не является внутренней или внешней командой”, возможные причины:

  • Папка окружения не существует (ошибка при создании).
  • Запуск из неправильной папки (путь не найден).
  • Использование PowerShell, а не cmd (тогда нужно вызывать Activate.ps1).

Решение: проверить наличие файла activate.bat в Scripts и выполнять команду из родительского каталога окружения.

Пример 5: Активация через subprocess в Python (из другого скрипта)

Иногда требуется запустить другой скрипт внутри активированного окружения. Это можно сделать с помощью subprocess, запустив оболочку с активацией:

Пример
import subprocess
cmd = 'cmd.exe /c "env\Scripts\activate && python other_script.py"'
subprocess.run(cmd, shell=True)

Результат: выполнится other_script.py в окружении env.

Пример 6: Использование venv и активация с переименованием папки

Если папка окружения была переименована или перемещена, скрипты активации могут перестать работать, так как они содержат жёстко прописанные пути. В таком случае следует удалить и заново создать окружение. Альтернатива - использовать virtualenv с ключом --relocatable (устаревшая опция в старых версиях). Современный venv не поддерживает перемещение.

активация виртуального окружения Python в Windows - comments

En
Python activate window (python)