ohmyzsh/plugins/python
2024-03-02 21:07:14 -08:00
..
python.plugin.zsh Make mkv & vrun use PYTHON_VENV_NAME too 2024-03-02 21:07:14 -08:00
README.md Make mkv & vrun use PYTHON_VENV_NAME too 2024-03-02 21:07:14 -08:00

Python plugin

The plugin adds several aliases for useful Python commands.

To use it, add python to the plugins array in your zshrc file:

plugins=(... python)

Aliases

Command Description
py Runs python3. Only set if py is not installed.
ipython Runs the appropriate ipython version according to the activated virtualenv
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 <text> 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 virtual environments:

  • mkv [name]: Make a new virtual environment called name (else $PYTHON_VENV_NAME, else "venv") in the current directory.

  • vrun [name]: Activate the virtual environment called name (else $PYTHON_VENV_NAME, else "venv") in the current directory.

  • auto_vrun: Automatically activate the venv virtual environment when cding into a directory containing venv/bin/activate, and automatically deactivate it when cding into any other directory, including subdirectories.

    • To enable, set PYTHON_AUTO_VRUN to anything. For example:

      export PYTHON_AUTO_VRUN='true'
      
    • To disable, either unset the environment variable:

      unset PYTHON_AUTO_VRUN
      

      or entirely remove auto_vrun from the list of functions associated with the chpwd hook:

      add-zsh-hook -d chpwd auto_vrun
      

      If you disable auto_vrun while a virtual environment is active, you'll need to manually deactivate.

    • The default virtual environment name is "venv". To use a different name, set PYTHON_VENV_NAME. For example:

      export PYTHON_VENV_NAME='.venv'