#!/usr/bin/env bash # # Summary: Deactivate virtual environment # # Usage: pyenv deactivate # # Deactivate a Python virtual environment. set -e [ -n "$PYENV_DEBUG" ] && set -x if [ -z "${PYENV_ROOT}" ]; then PYENV_ROOT="$(pyenv-root)" fi unset FORCE unset QUIET unset VERBOSE while [ $# -gt 0 ]; do case "$1" in "-f" | "--force" ) FORCE=1 ;; "--no-error" ) # for backward compatibility with v20151103 and earlier QUIET=1 ;; "-q" | "--quiet") QUIET=1 ;; "-v" | "--verbose" ) VERBOSE=1 ;; * ) break ;; esac shift 1 done if [ -z "${VIRTUAL_ENV}" ]; then if [ -z "${FORCE}" ]; then if [ -z "${QUIET}" ]; then echo "pyenv-virtualenv: no virtualenv has been activated." 1>&2 fi echo "false" exit 1 fi fi shell="$(basename "${PYENV_SHELL:-$SHELL}")" prefix="${VIRTUAL_ENV}" if [[ "${prefix%/*/envs/*}" == "${PYENV_ROOT}/versions" ]]; then venv="${prefix#${PYENV_ROOT}/versions/}" else venv="${prefix##*/}" fi echo "pyenv-virtualenv: deactivate ${venv}" 1>&2 if [ -n "${PYENV_ACTIVATE_SHELL}" ]; then # shell version set in pyenv-sh-activate should be unset # https://github.com/yyuu/pyenv-virtualenv/issues/61 case "$shell" in fish ) cat </dev/null 2>&1; then unset -f deactivate; fi; EOS ;; esac