mirror of
https://github.com/pyenv/pyenv-virtualenv.git
synced 2025-11-12 21:43:51 -05:00
Create symlinks for executables with version suffix
This commit is contained in:
@@ -202,22 +202,35 @@ install_virtualenv() {
|
||||
|
||||
ensurepip() {
|
||||
local version="$1"
|
||||
if PYENV_VERSION="${version}" pyenv-exec python -m ensurepip 2>/dev/null; then
|
||||
local PREFIX_PATH="$(pyenv-prefix "${version}")"
|
||||
if [ ! -e "${PREFIX_PATH}/bin/pip" ]; then
|
||||
local pip="$(PYENV_VERSION="${version}" pyenv-exec python -c 'import sys;v=sys.version_info;sys.stdout.write("pip%d.%d"%(v[0],v[1]))')"
|
||||
if [ -e "${PREFIX_PATH}/bin/${pip}" ]; then
|
||||
( cd "${PREFIX_PATH}/bin" && ln -fs "${pip}" "pip" )
|
||||
fi
|
||||
fi
|
||||
else
|
||||
PYENV_VERSION="${version}" pyenv-exec python -m ensurepip 2>/dev/null || {
|
||||
PYENV_VERSION="${version}" pyenv-exec python -c "import setuptools" 1>/dev/null 2>&1 || {
|
||||
install_setuptools "${version}"
|
||||
} 1>&2
|
||||
PYENV_VERSION="${version}" pyenv-which pip 1>/dev/null 2>&1 || {
|
||||
install_pip "${version}"
|
||||
} 1>&2
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
create_symlinks() {
|
||||
local version="$1"
|
||||
local suffix="$(PYENV_VERSION="${version}" pyenv-exec python -c 'import sys;v=sys.version_info;sys.stdout.write("%d.%d"%(v[0],v[1]))')"
|
||||
|
||||
local file link
|
||||
shopt -s nullglob
|
||||
for file in "${VIRTUALENV_PATH}/bin"/*; do
|
||||
if [[ "${file##*/}" == *"${suffix}" ]]; then
|
||||
if [[ "${file}" == *"-${suffix}" ]]; then
|
||||
link="${file%%-${suffix}}"
|
||||
else
|
||||
link="${file%%${suffix}}"
|
||||
fi
|
||||
if [ ! -e "${link}" ]; then
|
||||
( cd "${file%/*}" && ln -fs "${file##*/}" "${link##*/}" )
|
||||
fi
|
||||
fi
|
||||
done
|
||||
shopt -u nullglob
|
||||
}
|
||||
|
||||
prepare_upgrade() {
|
||||
@@ -422,6 +435,8 @@ if [ -n "$UPGRADE" ]; then
|
||||
upgrade "${VIRTUALENV_NAME}" "${VIRTUALENV_PATH}" || STATUS="$?"
|
||||
fi
|
||||
|
||||
create_symlinks "${VIRTUALENV_NAME}"
|
||||
|
||||
# Execute `after_virtualenv` hooks
|
||||
for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
||||
|
||||
|
||||
Reference in New Issue
Block a user