This commit is contained in:
Andrey Anurin
2016-05-16 23:46:33 -07:00
commit 916d13f93e
412 changed files with 37846 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
Python
======
Enables local Python and local Python package installation.
Local Python Installation
-------------------------
[pyenv][4] builds and installs multiple Python versions locally in the home
directory.
This module prepends the pyenv directory to the path variable to enable the
execution of `pyenv`.
### Usage
Install Python versions with `pyenv install` into *~/.pyenv/versions*.
Local Package Installation
--------------------------
Since version 2.6, Python supports per user package installation, as defined in
[PEP 370][1].
This module prepends per user site directories to the relevant path variables
to enable the execution of user installed scripts and the reading of
documentation.
### Usage
Install packages into the per user site directory with `easy_install --user` or
`pip install --user`.
virtualenvwrapper
-----------------
[virtualenvwrapper][2] is a frontend to the popular [virtualenv][3] utility.
virtualenv creates isolated Python environments and virtualenvwrapper provides
convenient shell functions to create, switch, and manage them.
### Usage
Install virtualenvwrapper.
Virtual environments are stored in *~/.virtualenvs*.
There are configuration variables that have to be set to enable certain features.
If you wish to use these features, export the variables in *~/.zshenv*
The variable `$PROJECT_HOME` tells virtualenvwrapper where to place project
working directories. It must be set and the directory created before `mkproject`
is used. Replace *Developer* with your projects directory.
export PROJECT_HOME="$HOME/Developer"
The variable `$VIRTUALENVWRAPPER_VIRTUALENV_ARGS` tells virtualenvwrapper what
arguments to pass to `virtualenv`. For example, set the value to
*--no-site-packages* to ensure that all new environments are isolated from the
system site-packages directory.
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
Aliases
-------
- `py` is short for `python`.
Functions
---------
- `python-info` exposes information about the Python environment via the
`$python_info` associative array.
Theming
-------
To display the name of the current virtual enviroment in a prompt, define the
following style in the `prompt_name_setup` function.
# %v - virtualenv name.
zstyle ':prezto:module:python:info:virtualenv' format 'virtualenv:%v'
Then add `$python_info[virtualenv]` to `$PROMPT` or `$RPROMPT` and call
`python-info` in the `prompt_name_preexec` hook function.
Authors
-------
*The authors of this module should be contacted via the [issue tracker][5].*
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Sebastian Wiesner](https://github.com/lunaryorn)
[1]: http://www.python.org/dev/peps/pep-0370/
[2]: http://www.doughellmann.com/projects/virtualenvwrapper/
[3]: http://pypi.python.org/pypi/virtualenv
[4]: https://github.com/yyuu/pyenv
[5]: https://github.com/sorin-ionescu/prezto/issues

View File

@@ -0,0 +1,21 @@
#
# Exposes information about the Python environment via the $python_info
# associative array.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
local virtualenv_format
local virtualenv_formatted
# Clean up previous $python_info.
unset python_info
typeset -gA python_info
# Format virtualenv.
if [[ -n "$VIRTUAL_ENV" ]]; then
zstyle -s ':prezto:module:python:info:virtualenv' format 'virtualenv_format'
zformat -f virtualenv_formatted "$virtualenv_format" "v:${VIRTUAL_ENV:t}"
python_info[virtualenv]="$virtualenv_formatted"
fi

View File

@@ -0,0 +1,52 @@
#
# Enables local Python package installation.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
# Sebastian Wiesner <lunaryorn@googlemail.com>
#
# Load manually installed pyenv into the shell session.
if [[ -s "$HOME/.pyenv/bin/pyenv" ]]; then
path=("$HOME/.pyenv/bin" $path)
eval "$(pyenv init -)"
# Load package manager installed pyenv into the shell session.
elif (( $+commands[pyenv] )); then
eval "$(pyenv init -)"
# Prepend PEP 370 per user site packages directory, which defaults to
# ~/Library/Python on Mac OS X and ~/.local elsewhere, to PATH. The
# path can be overridden using PYTHONUSERBASE.
else
if [[ -n "$PYTHONUSERBASE" ]]; then
path=($PYTHONUSERBASE/bin $path)
elif [[ "$OSTYPE" == darwin* ]]; then
path=($HOME/Library/Python/*/bin(N) $path)
else
# This is subject to change.
path=($HOME/.local/bin $path)
fi
fi
# Return if requirements are not found.
if (( ! $+commands[python] && ! $+commands[pyenv] )); then
return 1
fi
# Load virtualenvwrapper into the shell session.
if (( $+commands[virtualenvwrapper.sh] )); then
# Set the directory where virtual environments are stored.
export WORKON_HOME="$HOME/.virtualenvs"
# Disable the virtualenv prompt.
VIRTUAL_ENV_DISABLE_PROMPT=1
source "$commands[virtualenvwrapper.sh]"
fi
#
# Aliases
#
alias py='python'