mirror of
https://github.com/dcarrillo/prezto.git
synced 2024-12-22 11:38:00 +00:00
python: Update pyenv initialization flow per pyenv 2.0
In pyenv 2.0 onwards, it is not enough anymore to initialize pyenv in shell by just calling `pyenv init -`. We also need to update `path` to include pyenv shims by calling `pyenv init --path`. Also, honor `$PYENV_ROOT` if set but, no need to set it explicitly if not set. Instead, let the initialization script take care of that.
This commit is contained in:
parent
f0942e6dda
commit
afe59b293b
@ -38,7 +38,9 @@ execution of `pyenv`.
|
||||
Install Python versions with `pyenv install` into _`~/.pyenv/versions`_.
|
||||
|
||||
This will be loaded automatically if pyenv is installed to `$PYENV_ROOT`,
|
||||
_`~/.pyenv`_, or if the `pyenv` command is on the path.
|
||||
_`~/.pyenv`_, or if the `pyenv` command is on the path. By default, `PYENV_ROOT`
|
||||
is set to _`$HOME/.pyenv`_. You can set it to an alternate location and export
|
||||
it in [_`${ZDOTDIR:-$HOME}/.zshenv`_][6].
|
||||
|
||||
## Local Package Installation
|
||||
|
||||
|
@ -11,14 +11,21 @@
|
||||
# Load dependencies.
|
||||
pmodload 'helper'
|
||||
|
||||
# Load manually installed pyenv into the path
|
||||
if [[ -s "${PYENV_ROOT:=$HOME/.pyenv}/bin/pyenv" ]]; then
|
||||
path=("$PYENV_ROOT/bin" $path)
|
||||
eval "$(pyenv init - --no-rehash zsh)"
|
||||
# Load manually installed or package manager installed pyenv into the shell
|
||||
# session.
|
||||
if [[ -s "${local_pyenv::=${PYENV_ROOT:-$HOME/.pyenv}/bin/pyenv}" ]] \
|
||||
|| (( $+commands[pyenv] )); then
|
||||
|
||||
# Load pyenv into the current python session
|
||||
elif (( $+commands[pyenv] )); then
|
||||
eval "$(pyenv init - --no-rehash zsh)"
|
||||
# Ensure manually installed pyenv is added to path when present.
|
||||
[[ -s $local_pyenv ]] && path=($local_pyenv:h $path)
|
||||
|
||||
# pyenv 2+ requires shims to be added to path before being initialized.
|
||||
autoload -Uz is-at-least
|
||||
if is-at-least 2 ${"$(pyenv --version 2>&1)"[(w)2]}; then
|
||||
eval "$(pyenv init --path zsh)"
|
||||
fi
|
||||
|
||||
eval "$(pyenv init - zsh)"
|
||||
|
||||
# Prepend PEP 370 per user site packages directory, which defaults to
|
||||
# ~/Library/Python on macOS and ~/.local elsewhere, to PATH. The
|
||||
@ -34,6 +41,8 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
unset local_pyenv
|
||||
|
||||
# Return if requirements are not found.
|
||||
if (( ! $#commands[(i)python[23]#] && ! $+functions[pyenv] )); then
|
||||
return 1
|
||||
|
Loading…
Reference in New Issue
Block a user