diff --git a/bin/pyenv-virtualenv-prefix b/bin/pyenv-virtualenv-prefix index a762498..b1ae326 100755 --- a/bin/pyenv-virtualenv-prefix +++ b/bin/pyenv-virtualenv-prefix @@ -31,7 +31,8 @@ base_prefix() { # pyvenv } VIRTUALENV_PREFIX_PATHS=() -for version in "${versions[@]}"; do +for version_string in "${versions[@]}"; do + version="${version_string%%/*}" if [ "$version" = "system" ]; then echo "pyenv-virtualenv: version \`${version}' is not a virtualenv" 1>&2 exit 1 @@ -40,8 +41,18 @@ for version in "${versions[@]}"; do if [ -f "${PREFIX}/bin/activate" ]; then # Anaconda has `activate` script nevertheless it is not a virtual environment (#65) if [ -f "${PREFIX}/bin/conda" ]; then - echo "pyenv-virtualenv: version \`${version}' is an anaconda/miniconda" 1>&2 - exit 1 + if [[ "${version_string}" != "${version_string%/envs/*}" ]]; then + conda_env="${version_string##*/envs/}" + if [ -f "${PREFIX}/envs/${conda_env}/bin/conda" ]; then + VIRTUALENV_PREFIX_PATHS=("${VIRTUALENV_PREFIX_PATHS[@]}" "${PREFIX}/envs/${conda_env}") + else + echo "pyenv-virtualenv: version \`${version_string}' is not an environment of anaconda/miniconda" 1>&2 + exit 1 + fi + else + echo "pyenv-virtualenv: version \`${version_string}' is not a virtualenv" 1>&2 + exit 1 + fi else VIRTUALENV_PREFIX_PATH="$(real_prefix "${version}" || base_prefix "${version}" || true)" VIRTUALENV_PREFIX_PATHS=("${VIRTUALENV_PREFIX_PATHS[@]}" "$VIRTUALENV_PREFIX_PATH") diff --git a/bin/pyenv-virtualenvs b/bin/pyenv-virtualenvs index 614299c..c550b1c 100755 --- a/bin/pyenv-virtualenvs +++ b/bin/pyenv-virtualenvs @@ -51,6 +51,16 @@ for version in $(pyenv-versions --bare); do virtualenv_prefix="$(pyenv-virtualenv-prefix "${version}" 2>/dev/null || true)" if [ -d "${virtualenv_prefix}" ]; then print_version "${version}" " (created from ${virtualenv_prefix})" + else + # envs of anaconda/miniconda + prefix="$(pyenv-prefix "${version}")" + if [ -f "${prefix}/bin/activate" ] && [ -f "${prefix}/bin/conda" ]; then + shopt -s nullglob + for conda_env in "${prefix}/envs/"*; do + print_version "${version##*/}${conda_env#${prefix}}" " (created from ${prefix})" + done + shopt -u nullglob + fi fi fi done