Python Windows

PowerShell: выполнение сценариев отключено при активации venv Python

  • Обновлено
  • Чтение ≈ 4 минуты

Краткий ответ

PowerShell по умолчанию запрещает запуск скриптов, поэтому Activate.ps1 не выполняется. Ниже — причины и порядок действий от простого к сложному.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Изменение политики
  5. Другие способы
  6. Проверка окружения

#Что означает ошибка

Сообщение
Activate.ps1 cannot be loaded because running scripts is disabled on this system

Ошибка PowerShell «Выполнение сценариев отключено в этой системе» при .\venv\Scripts\Activate.ps1 вызвана политикой выполнения (Execution Policy). Она ограничивает запуск .ps1-скриптов и не связана с самим Python.

Исправляется изменением политики для текущего пользователя или использованием другой оболочки.

Права администратора для этого не нужны.

PowerShell по умолчанию запрещает запуск скриптов, поэтому Activate.ps1 не выполняется. Можно разрешить скрипты для текущего пользователя либо использовать activate.bat в командной строке.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Политика выполнения RestrictedPowerShell не разрешает запуск локального Activate.ps1Проверьте Get-ExecutionPolicy -List и допустимость Scope Process.
Запуск не в той оболочкеУстановлена групповая политика организацииНе обходите её, используйте cmd/прямой запуск Python либо обратитесь к администратору.
Групповая политика запрещаетСоздано другое окружение или скрипта нетПроверьте путь venv и создайте окружение при необходимости.
Неверный путь к скриптуАктивация прошла, но Python берётся из другого каталогаПроверьте sys.executable и фактические пути команд.

#Пошаговое решение

  1. Откройте PowerShellВ Windows откройте «Пуск» → PowerShell или «Терминал» (обычное окно, права администратора не нужны) и перейдите в папку проекта командой cd "C:\путь\к\проекту", заменив путь реальным. Выполните Get-ExecutionPolicy -List и прочитайте значения для Process, CurrentUser, LocalMachine, UserPolicy, MachinePolicy. Если ошибка появляется именно при запуске venv\Scripts\Activate.ps1, проверьте, что файл существует и виртуальное окружение уже создано.
    Windows · PowerShellКоманда
    Команды PowerShell; установка Process действует только в текущем сеансе и не должна обходить групповые политики.
    Get-ExecutionPolicy -List
    # Только если разрешено правилами организации:
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
    .\venv\Scripts\Activate.ps1
  2. Разрешите выполнение скриптовЕсли политика организации это разрешает, установите только для своего пользователя Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned и подтвердите запрос. Это изменяет пользовательскую политику PowerShell; для разового сеанса менее постоянная альтернатива Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned. Эти способы альтернативные, а ограничения MachinePolicy/UserPolicy нельзя переопределять локально — обратитесь к администратору. Для отката пользовательского изменения используйте Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Undefined, если ранее состояние CurrentUser было Undefined.
  3. Активируйте окружениеВ том же окне PowerShell, находясь в корне проекта, выполните .\venv\Scripts\Activate.ps1 (имя каталога может быть .venv, проверьте Проводником). Обычный признак успеха — префикс (venv) в приглашении; проверьте точный интерпретатор командой python -c "import sys; print(sys.executable)": путь должен вести в вашу папку venv. Если файл отсутствует, создайте окружение через py -m venv venv после проверки, что нужный Python установлен; не копируйте активацию из чужой папки.
  4. Либо используйте cmd или Git BashЕсли менять политику нельзя, в меню «Пуск» откройте Командную строку (cmd), перейдите в каталог проекта и выполните venv\Scripts\activate.bat. Можно вообще не активировать окружение: вызовите venv\Scripts\python.exe -m pip install ИМЯ_ПАКЕТА или venv\Scripts\python.exe script.py, подставив нужные значения. Это не требует изменения ExecutionPolicy. Git Bash использует другой сценарий активации (source venv/Scripts/activate) и не обязательно установлен — не смешивайте команды разных оболочек.
  5. Проверьте интерпретаторВ PowerShell выполните Get-Command python | Select-Object Source и python -c "import sys; print(sys.prefix); print(sys.base_prefix)"; после активации prefix обычно указывает на окружение, а base_prefix — на базовый Python. В cmd вместо Get-Command используйте where python. Если путь не тот, сначала проверьте, что активировали окружение именно этого проекта. При завершении работы отключите его командой deactivate, если активация происходила.

#Изменение политики

Сначала выполните Get-ExecutionPolicy -List. Если доменная политика не запрещает выполнение, администратор организации разрешает необходимый вариант; для одного сеанса можно использовать Set-ExecutionPolicy -Scope Process RemoteSigned, а для пользователя — CurrentUser по согласованию. Bypass и обход политик не являются штатным решением, поскольку защита выполняет организационные правила. Возможная альтернатива — запуск Python из виртуального окружения напрямую без активации.

#Другие способы

В cmd.exe используйте venv\Scripts\activate.bat — политика PowerShell не применяется. В Git Bash: source venv/Scripts/activate. В VS Code выберите интерпретатор из venv (Ctrl+Shift+P → «Python: Select Interpreter») и откройте терминал: расширение само активирует окружение. Можно вообще не активировать окружение: venv\Scripts\python.exe -m pip install -r requirements.txt.

#Проверка окружения

После активации проверяйте не только префикс (venv), но и python -c "import sys; print(sys.executable)". where python работает в cmd, а PowerShell использует Get-Command python. Не запускайте python -m venv venv --clear на существующем окружении без согласования: ключ --clear удаляет его содержимое. При повреждении окружения сначала сохраните перечень зависимостей и создайте новое отдельно.

Windows · PowerShellКоманда
Выполнять только если файл есть и политика разрешает запуск; более безопасная альтернатива — venv\Scripts\python.exe без активации.
.\venv\Scripts\Activate.ps1
python -c "import sys; print(sys.executable)"

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 1 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.