diff --git a/bin/pyenv-virtualenv b/bin/pyenv-virtualenv index 27f8d616..66ac00e7 100755 --- a/bin/pyenv-virtualenv +++ b/bin/pyenv-virtualenv @@ -143,8 +143,11 @@ detect_venv() { # Check the existence of executables as a workaround for the issue with pyenv-which-ext # https://github.com/yyuu/pyenv-virtualenv/issues/26 local prefix="$(pyenv-prefix)" - if [ -x "${prefix}/bin/conda" ]; then + if [ -d "${prefix}/conda-meta" ] || [ -x "${prefix}/bin/conda" ]; then HAS_CONDA=1 + if [ -d "${prefix}/envs" ]; then + IS_BASE_CONDA=1 + fi else if [ -x "${prefix}/bin/virtualenv" ]; then HAS_VIRTUALENV=1 @@ -576,7 +579,11 @@ STATUS=0 mkdir -p "${PYENV_VIRTUALENV_CACHE_PATH}" cd "${PYENV_VIRTUALENV_CACHE_PATH}" if [ -n "${USE_CONDA}" ]; then - pyenv-exec conda create $QUIET $VERBOSE --name "${VIRTUALENV_PATH##*/}" --yes "${VIRTUALENV_OPTIONS[@]}" python || STATUS="$?" + if [ -n "${IS_BASE_CONDA}" ]; then + pyenv-exec conda create $QUIET $VERBOSE --name "${VIRTUALENV_PATH##*/}" --yes "${VIRTUALENV_OPTIONS[@]}" python || STATUS="$?" + else + pyenv-exec conda create $QUIET $VERBOSE --clone "${VERSION_NAME##*/}" --name "${VIRTUALENV_PATH##*/}" --yes "${VIRTUALENV_OPTIONS[@]}" || STATUS="$?" + fi else if [ -n "${USE_M_VENV}" ]; then pyenv-exec "${M_VENV_PYTHON_BIN:-python}" -m venv $QUIET $VERBOSE "${VIRTUALENV_OPTIONS[@]}" "${VIRTUALENV_PATH}" || STATUS="$?"