Skip to content

Commit

Permalink
Added conda virtualenv support to python module. (sorin-ionescu#1505)
Browse files Browse the repository at this point in the history
* Added conda virtualenv support to python module
* Added instructions for Python module options to README

Thanks to @egpbos for the original feature and @ickc for fixing the merge conflicts.
  • Loading branch information
ickc authored and belak committed Nov 13, 2017
1 parent ce349df commit 96bbb31
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 0 deletions.
13 changes: 13 additions & 0 deletions modules/python/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
-------------------------

Expand Down
8 changes: 8 additions & 0 deletions modules/python/functions/python-info
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
# Patrick Bos <egpbos@gmail.com>
#

# function python-info {
Expand All @@ -22,4 +23,11 @@ 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

# }
14 changes: 14 additions & 0 deletions modules/python/init.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
# Sebastian Wiesner <lunaryorn@googlemail.com>
# Patrick Bos <egpbos@gmail.com>
#

# Load manually installed pyenv into the shell session.
Expand Down Expand Up @@ -144,6 +145,19 @@ if (( $#commands[(i)pip(|[23])] )); then
unset cache_file pip_command
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

#
# Aliases
#
Expand Down

0 comments on commit 96bbb31

Please sign in to comment.