Запуск виртуального окружения Python в операционной системе Windows
Способы активации виртуального окружения Python в Windows
Наиболее распространённый способ активации виртуального окружения в Windows - использование скрипта activate.bat для командной строки (cmd). Предполагается, что окружение уже создано с помощью python -m venv myenv или virtualenv myenv. После создания в папке окружения (myenv) появляется подпапка Scripts, содержащая файлы активации. Для активации в cmd необходимо перейти в корневую папку проекта и выполнить команду:
myenv\Scripts\activatePython venv ubuntu (создать виртуальное окружение python в ubuntu)
В результате слева от приглашения командной строки появится название окружения (например, (myenv)), что сигнализирует об успешной активации. Теперь все команды python и pip будут использовать интерпретатор и библиотеки именно из этого окружения, а не глобальные. Отключение окружения выполняется командой deactivate.
Как активировать окружение в PowerShell?
В Windows PowerShell скрипт активации имеет расширение .ps1:
myenv\Scripts\Activate.ps1Python 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/activateVenv python version (версия python в виртуальном окружении)
Обратите внимание на прямой слэш. Если окружение создано в Windows, но используется Bash, пути с обратными слэшами могут не распознаваться.
Что делать, если папка окружения расположена не в текущей директории?
Можно указать полный путь:
C:\projects\myproject\myenv\Scripts\activatePython 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
deactivatePython venv linux (использование виртуального окружения на linux)
В PowerShell скрипте run.ps1:
myenv\Scripts\Activate.ps1
python main.py
deactivate
Такой подход гарантирует, что код выполняется в изолированном окружении.
Дополнительные примеры активации и типичные сценарии.
Расширенные примеры
Пример 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 не поддерживает перемещение.