# Python plugin The plugin adds several aliases for useful [Python](https://www.python.org/) commands. To use it, add `python` to the plugins array in your zshrc file: ```zsh plugins=(... python) ``` ## Aliases | Command | Description | | ---------------- | -------------------------------------------------------------------------------------- | | `py` | Runs `python3`. Only set if `py` is not installed. | | `pyfind` | Finds .py files recursively in the current directory | | `pyclean [dirs]` | Deletes byte-code and cache files from a list of directories or the current one | | `pygrep ` | Looks for `text` in `*.py` files in the current directory, recursively | | `pyuserpaths` | Add user site-packages folders to `PYTHONPATH`, for Python 2 and 3 | | `pyserver` | Starts an HTTP server on the current directory (use `--directory` for a different one) | ## Virtual environments The plugin provides three utilities to manage Python 3.3+ [venv](https://docs.python.org/3/library/venv.html) virtual environments: - `mkv [name]`: make a new virtual environment called `name` in the current directory. **Default**: `$PYTHON_VENV_NAME` if set, otherwise `venv`. - `vrun [name]`: activate the virtual environment called `name` in the current directory. **Default**: the first existing in `$PYTHON_VENV_NAMES`. - `auto_vrun`: automatically activate the venv virtual environment when entering a directory containing `/bin/activate`, and automatically deactivate it when navigating out of it (keeps venv activated in subdirectories). - To enable the feature, set `PYTHON_AUTO_VRUN=true` before sourcing oh-my-zsh. - The plugin activates the first existing virtual environment, in order, appearing in `$PYTON_VENV_NAMES`. The default virtual environment name is `venv`. To use a different name, set `PYTHON_VENV_NAME=`. For example: `PYTHON_VENV_NAME=".venv"` ### Settings You can set these variables in your `.zshrc` file, before Oh My Zsh is sourced. For example: ```sh PYTHON_VENV_NAME=".venv" PYTHON_VENV_NAMES=($PYTHON_VENV_NAME venv) ... plugins=(... python) source "$ZSH/oh-my-zsh.sh" ``` ## `$PYTHON_VENV_NAME` **Default**: `venv`. Preferred name for virtual environments, for example when creating via `mkv`. ## `$PYTHON_VENV_NAMES` **Default**: `$PYTHON_VENV_NAME venv .venv`. Array of virtual environment names to be checked, in order, by `vrun` and `auto_vrun`. This means these functions will load the first existing virtual environment in this list. Duplicate names are ignored.