From bad45075411dd7f3ef5c6822ee88684ad424bc2a Mon Sep 17 00:00:00 2001 From: Yamashita Yuu Date: Sat, 28 Jun 2014 00:58:27 +0900 Subject: [PATCH] Run _ensurepip_ after the every creation of virtualenv/pyvenv --- bin/pyenv-virtualenv | 15 +++++++-------- test/pyvenv.bats | 19 +++++++++++++++++++ test/virtualenv.bats | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 8 deletions(-) diff --git a/bin/pyenv-virtualenv b/bin/pyenv-virtualenv index ce326dc..f149e35 100755 --- a/bin/pyenv-virtualenv +++ b/bin/pyenv-virtualenv @@ -142,11 +142,6 @@ venv() { local args=("$@") if [ -n "${USE_PYVENV}" ]; then pyenv-exec pyvenv "${args[@]}" - - local last="${args[${#args[@]}-1]}" - ( export PYENV_VERSION="${last##*/}" - build_package_ensurepip - ) else pyenv-exec virtualenv "${args[@]}" fi @@ -203,8 +198,7 @@ install_virtualenv() { } 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 suffix="$1" local file link shopt -s nullglob @@ -429,12 +423,17 @@ mkdir -p "${PYENV_VIRTUALENV_CACHE_PATH}" cd "${PYENV_VIRTUALENV_CACHE_PATH}" 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 if [ -n "$UPGRADE" ]; then upgrade "${VIRTUALENV_NAME}" "${VIRTUALENV_PATH}" || STATUS="$?" 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 for hook in "${after_hooks[@]}"; do eval "$hook"; done diff --git a/test/pyvenv.bats b/test/pyvenv.bats index 130b748..361fc2f 100644 --- a/test/pyvenv.bats +++ b/test/pyvenv.bats @@ -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-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%.*}" create_executable "3.4.1" "virtualenv" @@ -74,7 +75,12 @@ OUT stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${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 "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 curl true + stub curl true remove_executable "3.2.1" "virtualenv" remove_executable "3.2.1" "pyvenv" @@ -85,11 +91,14 @@ OUT assert_output <