簡體   English   中英

無法啟動由 python (Windows x64) 生成的虛擬環境

[英]Cannot start virtual environment generated by python (Windows x64)

我試圖通過使用命令.env/Scripts/activate在 Windows 上激活由 python python -m venv.env venv.env 生成的虛擬環境,但我最終得到了一個語法錯誤:

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 and get: RuntimeError: failed to query C:\Users\Admin\Documents\GPT\.env\Scripts\activate with code 8 err: '%1 is not a valid Win32 application'

我不確定為什么生成的東西已經有語法錯誤。

根據文檔activate腳本適用於 bash/zsh。 在 Windows 上,您應該使用activate.bat (cmd) 或Activate.ps1 (PowerShell)。 因此,代替.env/Scripts/activate ,運行.env/Scripts/Activate.ps1應該可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM