#!/usr/bin/env bash # # Summary: Run an executable with the selected Python version # # Usage: pyenv exec [arg1 arg2...] # # Runs an executable by first preparing PATH so that the selected Python # version's `bin' directory is at the front. # # For example, if the currently selected Python version is 2.7.6: # pyenv exec pip install -r requirements.txt # # is equivalent to: # PATH="$PYENV_ROOT/versions/2.7.6/bin:$PATH" pip install -r requirements.txt set -e [ -n "$PYENV_DEBUG" ] && set -x # Provide pyenv completions if [ "$1" = "--complete" ]; then exec pyenv-shims --short fi PYENV_VERSION="$(pyenv-version-name)" PYENV_COMMAND="$1" if [ -z "$PYENV_COMMAND" ]; then pyenv-help --usage exec >&2 exit 1 fi export PYENV_VERSION PYENV_COMMAND_PATH="$(pyenv-which "$PYENV_COMMAND")" PYENV_BIN_PATH="${PYENV_COMMAND_PATH%/*}" OLDIFS="$IFS" IFS=$'\n' scripts=(`pyenv-hooks exec`) IFS="$OLDIFS" for script in "${scripts[@]}"; do source "$script" done shift 1 if [ "${PYENV_BIN_PATH#${PYENV_ROOT}}" != "${PYENV_BIN_PATH}" ]; then # Only add to $PATH for non-system version. export PATH="${PYENV_BIN_PATH}:${PATH}" fi exec "$PYENV_COMMAND_PATH" "$@"