mirror of
https://github.com/pyenv/pyenv-virtualenv.git
synced 2025-11-13 05:53:52 -05:00
Run _ensurepip_ after the every creation of virtualenv/pyvenv
This commit is contained in:
@@ -142,11 +142,6 @@ venv() {
|
|||||||
local args=("$@")
|
local args=("$@")
|
||||||
if [ -n "${USE_PYVENV}" ]; then
|
if [ -n "${USE_PYVENV}" ]; then
|
||||||
pyenv-exec pyvenv "${args[@]}"
|
pyenv-exec pyvenv "${args[@]}"
|
||||||
|
|
||||||
local last="${args[${#args[@]}-1]}"
|
|
||||||
( export PYENV_VERSION="${last##*/}"
|
|
||||||
build_package_ensurepip
|
|
||||||
)
|
|
||||||
else
|
else
|
||||||
pyenv-exec virtualenv "${args[@]}"
|
pyenv-exec virtualenv "${args[@]}"
|
||||||
fi
|
fi
|
||||||
@@ -203,8 +198,7 @@ install_virtualenv() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
create_symlinks() {
|
create_symlinks() {
|
||||||
local version="$1"
|
local suffix="$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
|
local file link
|
||||||
shopt -s nullglob
|
shopt -s nullglob
|
||||||
@@ -429,12 +423,17 @@ mkdir -p "${PYENV_VIRTUALENV_CACHE_PATH}"
|
|||||||
cd "${PYENV_VIRTUALENV_CACHE_PATH}"
|
cd "${PYENV_VIRTUALENV_CACHE_PATH}"
|
||||||
venv $QUIET $VERBOSE "${VIRTUALENV_OPTIONS[@]}" "${VIRTUALENV_PATH}" || STATUS="$?"
|
venv $QUIET $VERBOSE "${VIRTUALENV_OPTIONS[@]}" "${VIRTUALENV_PATH}" || STATUS="$?"
|
||||||
|
|
||||||
|
## Install setuptools and pip
|
||||||
|
( export PYENV_VERSION="${VIRTUALENV_NAME}"
|
||||||
|
build_package_ensurepip
|
||||||
|
)
|
||||||
|
|
||||||
## Migrate previously installed packages from requirements.txt
|
## Migrate previously installed packages from requirements.txt
|
||||||
if [ -n "$UPGRADE" ]; then
|
if [ -n "$UPGRADE" ]; then
|
||||||
upgrade "${VIRTUALENV_NAME}" "${VIRTUALENV_PATH}" || STATUS="$?"
|
upgrade "${VIRTUALENV_NAME}" "${VIRTUALENV_PATH}" || STATUS="$?"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
create_symlinks "${VIRTUALENV_NAME}"
|
create_symlinks "$(PYENV_VERSION="${VIRTUALENV_NAME}" pyenv-exec python -c 'import sys;v=sys.version_info;sys.stdout.write("python%d.%d"%(v[0],v[1]))')"
|
||||||
|
|
||||||
# Execute `after_virtualenv` hooks
|
# Execute `after_virtualenv` hooks
|
||||||
for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ OUT
|
|||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
|
stub pyenv-exec "python -m ensurepip : true"
|
||||||
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
|
||||||
create_executable "3.4.1" "virtualenv"
|
create_executable "3.4.1" "virtualenv"
|
||||||
@@ -74,7 +75,12 @@ OUT
|
|||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
|
stub pyenv-exec "python -m ensurepip : false"
|
||||||
|
stub pyenv-exec "python */ez_setup.py : true"
|
||||||
|
stub pyenv-exec "python */get-pip.py : true"
|
||||||
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
stub curl true
|
||||||
|
stub curl true
|
||||||
|
|
||||||
remove_executable "3.2.1" "virtualenv"
|
remove_executable "3.2.1" "virtualenv"
|
||||||
remove_executable "3.2.1" "pyvenv"
|
remove_executable "3.2.1" "pyvenv"
|
||||||
@@ -85,11 +91,14 @@ OUT
|
|||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.2.1 pip install virtualenv
|
PYENV_VERSION=3.2.1 pip install virtualenv
|
||||||
PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
||||||
|
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
|
||||||
|
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub_pyenv
|
unstub_pyenv
|
||||||
unstub pyenv-exec
|
unstub pyenv-exec
|
||||||
|
unstub curl
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "install virtualenv if -p has given" {
|
@test "install virtualenv if -p has given" {
|
||||||
@@ -99,6 +108,7 @@ OUT
|
|||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "virtualenv --python=python3 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv --python=python3 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
|
stub pyenv-exec "python -m ensurepip : true"
|
||||||
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
|
||||||
remove_executable "3.4.1" "virtualenv"
|
remove_executable "3.4.1" "virtualenv"
|
||||||
@@ -124,6 +134,7 @@ OUT
|
|||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "virtualenv --python=python3 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv --python=python3 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
|
stub pyenv-exec "python -m ensurepip : true"
|
||||||
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
|
||||||
remove_executable "3.4.1" "virtualenv"
|
remove_executable "3.4.1" "virtualenv"
|
||||||
@@ -149,7 +160,12 @@ OUT
|
|||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-exec "pip install virtualenv : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "pip install virtualenv : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
|
stub pyenv-exec "python -m ensurepip : false"
|
||||||
|
stub pyenv-exec "python */ez_setup.py : true"
|
||||||
|
stub pyenv-exec "python */get-pip.py : true"
|
||||||
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
stub curl true
|
||||||
|
stub curl true
|
||||||
|
|
||||||
remove_executable "3.2.1" "virtualenv"
|
remove_executable "3.2.1" "virtualenv"
|
||||||
remove_executable "3.2.1" "pyvenv"
|
remove_executable "3.2.1" "pyvenv"
|
||||||
@@ -160,9 +176,12 @@ OUT
|
|||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PIP_REQUIRE_VENV= PYENV_VERSION=3.2.1 pip install virtualenv
|
PIP_REQUIRE_VENV= PYENV_VERSION=3.2.1 pip install virtualenv
|
||||||
PIP_REQUIRE_VENV= PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
PIP_REQUIRE_VENV= PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
||||||
|
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
|
||||||
|
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub_pyenv
|
unstub_pyenv
|
||||||
unstub pyenv-exec
|
unstub pyenv-exec
|
||||||
|
unstub curl
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,18 +27,26 @@ unstub_pyenv() {
|
|||||||
export PYENV_VERSION="3.2.1"
|
export PYENV_VERSION="3.2.1"
|
||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
|
stub pyenv-exec "python -m ensurepip : false"
|
||||||
|
stub pyenv-exec "python */ez_setup.py : true"
|
||||||
|
stub pyenv-exec "python */get-pip.py : true"
|
||||||
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
stub curl true
|
||||||
|
stub curl true
|
||||||
|
|
||||||
run pyenv-virtualenv "3.2.1" "venv"
|
run pyenv-virtualenv "3.2.1" "venv"
|
||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
||||||
|
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
|
||||||
|
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub_pyenv
|
unstub_pyenv
|
||||||
unstub pyenv-exec
|
unstub pyenv-exec
|
||||||
|
unstub curl
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "create virtualenv from current version" {
|
@test "create virtualenv from current version" {
|
||||||
@@ -46,19 +54,27 @@ OUT
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||||
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
|
stub pyenv-exec "python -m ensurepip : false"
|
||||||
|
stub pyenv-exec "python */ez_setup.py : true"
|
||||||
|
stub pyenv-exec "python */get-pip.py : true"
|
||||||
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
stub curl true
|
||||||
|
stub curl true
|
||||||
|
|
||||||
run pyenv-virtualenv venv
|
run pyenv-virtualenv venv
|
||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
||||||
|
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
|
||||||
|
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub_pyenv
|
unstub_pyenv
|
||||||
unstub pyenv-version-name
|
unstub pyenv-version-name
|
||||||
unstub pyenv-exec
|
unstub pyenv-exec
|
||||||
|
unstub curl
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "create virtualenv with short options" {
|
@test "create virtualenv with short options" {
|
||||||
@@ -66,19 +82,27 @@ OUT
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||||
stub pyenv-exec "virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
|
stub pyenv-exec "python -m ensurepip : false"
|
||||||
|
stub pyenv-exec "python */ez_setup.py : true"
|
||||||
|
stub pyenv-exec "python */get-pip.py : true"
|
||||||
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
stub curl true
|
||||||
|
stub curl true
|
||||||
|
|
||||||
run pyenv-virtualenv -v -p python venv
|
run pyenv-virtualenv -v -p python venv
|
||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.2.1 virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv
|
PYENV_VERSION=3.2.1 virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv
|
||||||
|
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
|
||||||
|
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub_pyenv
|
unstub_pyenv
|
||||||
unstub pyenv-version-name
|
unstub pyenv-version-name
|
||||||
unstub pyenv-exec
|
unstub pyenv-exec
|
||||||
|
unstub curl
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "create virtualenv with long options" {
|
@test "create virtualenv with long options" {
|
||||||
@@ -86,17 +110,25 @@ OUT
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||||
stub pyenv-exec "virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
|
stub pyenv-exec "python -m ensurepip : false"
|
||||||
|
stub pyenv-exec "python */ez_setup.py : true"
|
||||||
|
stub pyenv-exec "python */get-pip.py : true"
|
||||||
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
stub curl true
|
||||||
|
stub curl true
|
||||||
|
|
||||||
run pyenv-virtualenv --verbose --python=python venv
|
run pyenv-virtualenv --verbose --python=python venv
|
||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.2.1 virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv
|
PYENV_VERSION=3.2.1 virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv
|
||||||
|
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
|
||||||
|
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub_pyenv
|
unstub_pyenv
|
||||||
unstub pyenv-version-name
|
unstub pyenv-version-name
|
||||||
unstub pyenv-exec
|
unstub pyenv-exec
|
||||||
|
unstub curl
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user