mirror of
https://github.com/python/cpython.git
synced 2026-06-23 11:33:30 -04:00
5049eb1d29
PS1 is a parameter special to the current interactive shell. It does not need to be exported to the environment. Exporting PS1 is not useful, and will break different shells spawned by the current interactive shell.
75 lines
2.1 KiB
Plaintext
75 lines
2.1 KiB
Plaintext
# 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
|
|
|
|
# Call hash to forget past locations. Without forgetting
|
|
# past locations the $PATH changes we made may not be respected.
|
|
# See "man bash" for more details. hash is usually a builtin of your shell
|
|
hash -r 2> /dev/null || true
|
|
|
|
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
|
|
PS1="${_OLD_VIRTUAL_PS1:-}"
|
|
unset _OLD_VIRTUAL_PS1
|
|
fi
|
|
|
|
unset VIRTUAL_ENV
|
|
unset VIRTUAL_ENV_PROMPT
|
|
if [ ! "${1:-}" = "nondestructive" ] ; then
|
|
# Self destruct!
|
|
unset -f deactivate
|
|
fi
|
|
}
|
|
|
|
# unset irrelevant variables
|
|
deactivate nondestructive
|
|
|
|
# on Windows, a path can contain colons and backslashes and has to be converted:
|
|
case "$(uname)" in
|
|
CYGWIN*|MSYS*|MINGW*)
|
|
# transform D:\path\to\venv to /d/path/to/venv on MSYS and MINGW
|
|
# and to /cygdrive/d/path/to/venv on Cygwin
|
|
VIRTUAL_ENV=$(cygpath __VENV_DIR__)
|
|
export VIRTUAL_ENV
|
|
;;
|
|
*)
|
|
# use the path as-is
|
|
export VIRTUAL_ENV=__VENV_DIR__
|
|
;;
|
|
esac
|
|
|
|
_OLD_VIRTUAL_PATH="$PATH"
|
|
PATH="$VIRTUAL_ENV/"__VENV_BIN_NAME__":$PATH"
|
|
export PATH
|
|
|
|
VIRTUAL_ENV_PROMPT=__VENV_PROMPT__
|
|
export VIRTUAL_ENV_PROMPT
|
|
|
|
# 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="("__VENV_PROMPT__") ${PS1:-}"
|
|
fi
|
|
|
|
# Call hash to forget past commands. Without forgetting
|
|
# past commands the $PATH changes we made may not be respected
|
|
hash -r 2> /dev/null || true
|