diff --git a/bin/pyenv-virtualenv b/bin/pyenv-virtualenv index 5b52662..05a7b12 100755 --- a/bin/pyenv-virtualenv +++ b/bin/pyenv-virtualenv @@ -328,11 +328,6 @@ if [ ! -d "${PREFIX}" ]; then exit 1 fi -if [[ "${PREFIX}" != "${PREFIX%/envs/*}" ]]; then - echo "pyenv-virtualenv: nested virtualenv is not supported." 1>&2 - exit 1 -fi - if [ -z "$TMPDIR" ]; then TMP="/tmp" else @@ -343,7 +338,12 @@ fi if [[ "${VERSION_NAME%/envs/*}" == "system" ]]; then VIRTUALENV_NAME="${VIRTUALENV_NAME##*/}" else - VIRTUALENV_NAME="${VERSION_NAME}/envs/${VIRTUALENV_NAME##*/}" + VIRTUALENV_PREFIX="$(pyenv-virtualenv-prefix 2>/dev/null || true)" + if [[ "${VIRTUALENV_PREFIX%/*}" == "${PYENV_ROOT}/versions" ]]; then + VIRTUALENV_NAME="${VIRTUALENV_PREFIX#${PYENV_ROOT}/versions/}/envs/${VIRTUALENV_NAME##*/}" + else + VIRTUALENV_NAME="${VERSION_NAME}/envs/${VIRTUALENV_NAME##*/}" + fi fi VIRTUALENV_PATH="${PYENV_ROOT}/versions/${VIRTUALENV_NAME}"