Не удается запустить виртуальную среду, созданную Python (Windows x64)

Я пытаюсь активировать виртуальную среду, сгенерированную python python -m venv .env в Windows, с помощью команды .env/Scripts/activate Но в итоге получаю синтаксическую ошибку:

File "C:\Users\Admin\Documents\GPT\.env\Scripts\activate", line 8
    if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
    ^

Это сгенерированный код, который я пытаюсь выполнить, чтобы активировать виртуальную среду:

# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly



deactivate () {
    # reset old environment variables
   if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
        PATH = "${_OLD_VIRTUAL_PATH:-}"
        export PATH
        unset _OLD_VIRTUAL_PATH
    fi
   if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
        PYTHONHOME = "${_OLD_VIRTUAL_PYTHONHOME:-}"
        export PYTHONHOME
        unset _OLD_VIRTUAL_PYTHONHOME
    fi

    # This should detect bash and zsh, which have a hash command that must
    # be called to get it to forget past commands.  Without forgetting
    # past commands the $PATH changes we made may not be respected
    if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
        hash -r 2> /dev/null
    fi

    if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
        PS1 = "${_OLD_VIRTUAL_PS1:-}"
        export PS1
        unset _OLD_VIRTUAL_PS1
    fi

    unset VIRTUAL_ENV
    if [ ! "${1:-}" = "nondestructive" ] ; then
    # Self destruct!
        unset -f deactivate
    fi
}

# unset irrelevant variables
deactivate nondestructive

VIRTUAL_ENV = "C:\Users\Admin\Documents\GPT\.env"
export VIRTUAL_ENV

_OLD_VIRTUAL_PATH = "$PATH"
PATH = "$VIRTUAL_ENV/Scripts:$PATH"
export PATH

# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
if [ -n "${PYTHONHOME:-}" ] ; then
    _OLD_VIRTUAL_PYTHONHOME = "${PYTHONHOME:-}"
    unset PYTHONHOME
fi

if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
    _OLD_VIRTUAL_PS1 = "${PS1:-}"
    PS1 = "(.env) ${PS1:-}"
    export PS1
fi

# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands.  Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
    hash -r 2> /dev/null
fi

Я пытался:

virtualenv --python .env/Scripts/activate и получите: RuntimeError: failed to query C:\Users\Admin\Documents\GPT\.env\Scripts\activate with code 8 err: '%1 is not a valid Win32 application'

Я не уверен, почему у чего-то сгенерированного уже есть синтаксические ошибки.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно документации , скрипт activate предназначен для bash/zsh. В Windows вы должны использовать activate.bat (cmd) или Activate.ps1 (PowerShell). Так что вместо .env/Scripts/activate должно работать .env/Scripts/Activate.ps1.

Другие вопросы по теме