pyenv versions
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init - --no-rehash)"
+ # shellcheck disable=SC2046
pyenv local $(lf-pyver "${python}")
fi
fi
# 1. --venv-file <path/to/file> as lf_venv
# 2. default: "/tmp/.os_lf_venv"
# - Create new venv when 1. and 2. is absent
- if [ -f "$venv_file" ]; then
+ if [[ -f "$venv_file" ]]; then
lf_venv=$(cat "$venv_file")
echo "${FUNCNAME[0]}(): INFO: Reuse venv:$lf_venv from" \
"file:$venv_file"
- elif [ ! -f "$venv_file" ]; then
- $python -m venv "$install_args" "$lf_venv" || return 1
+ elif [[ ! -f "$venv_file" ]]; then
+ if [[ -n "$install_args" ]]; then
+ $python -m venv "$install_args" "$lf_venv" || return 1
+ else
+ $python -m venv "$lf_venv" || return 1
+ fi
echo "${FUNCNAME[0]}(): INFO: Creating $python venv at $lf_venv"
echo "$lf_venv" > "$venv_file"
echo "${FUNCNAME[0]}(): INFO: Save venv in file: $venv_file"
fi
- "$lf_venv/bin/pip" install --upgrade --quiet pip virtualenv || return 1
+ "$lf_venv/bin/python3" -m pip install --upgrade --quiet pip \
+ virtualenv || return 1
if [[ -z $pkg_list ]]; then
echo "${FUNCNAME[0]}(): WARNING: No packages to install"
- return 0
+ else
+ echo "${FUNCNAME[0]}(): INFO: Installing: $pkg_list"
+ # $pkg_list is expected to be unquoted
+ # shellcheck disable=SC2086
+ "$lf_venv/bin/python3" -m pip install --upgrade --quiet \
+ --upgrade-strategy eager $pkg_list || return 1
fi
- echo "${FUNCNAME[0]}(): INFO: Installing: $pkg_list"
- # $pkg_list is expected to be unquoted
- # shellcheck disable=SC2086
- "$lf_venv/bin/pip" install --upgrade --quiet --upgrade-strategy eager \
- $pkg_list || return 1
;;
*)
lf-echo-stderr "${FUNCNAME[0]}(): ERROR: No support for: $python"