diff --git a/modules/python/README.md b/modules/python/README.md index d4cd5716..5e97a77c 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -3,6 +3,19 @@ Python Enables local Python and local Python package installation. +Settings +-------- + +This module supports virtual environments from conda and virtualenvwrapper. By default, only virtualenvwrapper is enabled. To disable virtualenvwrapper, add the following to *zpreztorc*. + + zstyle ':prezto:module:python' skip-virtualenvwrapper-init 'on' + +Conda support is enabled by adding the following to *zpreztorc*. + + zstyle ':prezto:module:python' conda-init 'on' + +Caution: using conda and virtualenvwrapper at the same time may cause conflicts. + Local Python Installation ------------------------- diff --git a/modules/python/functions/python-info b/modules/python/functions/python-info index a616814c..ff24690b 100644 --- a/modules/python/functions/python-info +++ b/modules/python/functions/python-info @@ -4,6 +4,7 @@ # # Authors: # Sorin Ionescu +# Patrick Bos # # function python-info { @@ -22,4 +23,10 @@ if [[ -n "$VIRTUAL_ENV" ]]; then python_info[virtualenv]="$virtualenv_formatted" fi +# Do the same for Conda virtual environments +if [[ -n "$CONDA_DEFAULT_ENV" ]]; then + zstyle -s ':prezto:module:python:info:virtualenv' format 'virtualenv_format' + zformat -f virtualenv_formatted "$virtualenv_format" "v:${CONDA_DEFAULT_ENV:t}" + python_info[virtualenv]="$virtualenv_formatted" +fi # } diff --git a/modules/python/init.zsh b/modules/python/init.zsh index be484871..4d855dc2 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -4,6 +4,7 @@ # Authors: # Sorin Ionescu # Sebastian Wiesner +# Patrick Bos # # Load manually installed pyenv into the shell session. @@ -125,6 +126,19 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ unset pyenv_plugins fi +# Load conda into the shell session, if requested +zstyle -T ':prezto:module:python' conda-init +if (( $? && $+commands[conda] )); then + if (( $(conda ..changeps1) )); then + echo "To make sure Conda doesn't change your prompt (should do that in the prompt module) run:\n conda config --set changeps1 false" + # TODO: + # We could just run this ourselves. In an exit hook + # (add zsh-hook zshexit [(anonymous) function]) we could then set it back + # to the way it was before we changed it. However, I'm not sure if this is + # exception safe, so left it like this for now. + fi +fi + # Load PIP completion. if (( $#commands[(i)pip(|[23])] )); then cache_file="${0:h}/cache.zsh"