diff options
Diffstat (limited to 'plugins/pyenv')
-rw-r--r-- | plugins/pyenv/README.md | 16 | ||||
-rw-r--r-- | plugins/pyenv/pyenv.plugin.zsh | 13 |
2 files changed, 25 insertions, 4 deletions
diff --git a/plugins/pyenv/README.md b/plugins/pyenv/README.md new file mode 100644 index 000000000..d063b55b9 --- /dev/null +++ b/plugins/pyenv/README.md @@ -0,0 +1,16 @@ +# pyenv + +This plugin looks for [pyenv](https://github.com/pyenv/pyenv), a Simple Python version +management system, and loads it if it's found. It also loads pyenv-virtualenv, a pyenv +plugin to manage virtualenv, if it's found. + +To use it, add `pyenv` to the plugins array in your zshrc file: + +```zsh +plugins=(... pyenv) +``` + +## Functions + +- `pyenv_prompt_info`: displays the Python version in use by pyenv; or the global Python + version, if pyenv wasn't found. diff --git a/plugins/pyenv/pyenv.plugin.zsh b/plugins/pyenv/pyenv.plugin.zsh index dbc7da472..82ba6ff8c 100644 --- a/plugins/pyenv/pyenv.plugin.zsh +++ b/plugins/pyenv/pyenv.plugin.zsh @@ -1,10 +1,15 @@ # This plugin loads pyenv into the current shell and provides prompt info via # the 'pyenv_prompt_info' function. Also loads pyenv-virtualenv if available. -FOUND_PYENV=$+commands[pyenv] +# Load pyenv only if command not already available +if command -v pyenv &> /dev/null && [[ "$(uname -r)" != *icrosoft* ]]; then + FOUND_PYENV=1 +else + FOUND_PYENV=0 +fi if [[ $FOUND_PYENV -ne 1 ]]; then - pyenvdirs=("$HOME/.pyenv" "/usr/local/pyenv" "/opt/pyenv") + pyenvdirs=("$HOME/.pyenv" "/usr/local/pyenv" "/opt/pyenv" "/usr/local/opt/pyenv") for dir in $pyenvdirs; do if [[ -d $dir/bin ]]; then export PATH="$PATH:$dir/bin" @@ -24,7 +29,7 @@ if [[ $FOUND_PYENV -ne 1 ]]; then fi if [[ $FOUND_PYENV -eq 1 ]]; then - eval "$(pyenv init - zsh)" + eval "$(pyenv init - --no-rehash zsh)" if (( $+commands[pyenv-virtualenv-init] )); then eval "$(pyenv virtualenv-init - zsh)" fi @@ -38,4 +43,4 @@ else } fi -unset FOUND_PYENV dir +unset FOUND_PYENV pyenvdirs dir |