Add new site management commands for running pip and python.

Review Request #12998 — Created April 30, 2023 and submitted — Latest diff uploaded

Information

Review Board
release-5.0.x

Reviewers

This introduces two new special commands for rb-site manage: pip
and python. These are used to execute pip and python,
respectively, using the correct version of the site.

If the site is installed with an embedded venv directory, the
executable will be run from there, ensuring the command is executing
within that virtual environment.

If the site is a traditional globally-installed site, the versioned
pythonX.Y binary for the current version of Python running rb-site
will be used. pip always uses pythonX.Y -m pip.

The python command is conceptually distinct from shell, as it's
meant to be a raw pass-through to Python, rather than an interactive
shell (Django has additional logic going into their shell and can
execute ipython or bpython).

These are intentionally not implemented as management commands, in
order to minimize any Django-related code that needs to execute in
order to work with packages or the Python interpreter.

This will be the preferred way going forward for documenting any pip
or python usage within a site. Documentation will be updated
separately to show this usage.

Tested using the pip command for installing, uninstalling, and listing
packages. Tested this with both a virtualenv install and a traditional
global install.

Tested using the python command as a shell, command runner (using -c),
and piping a script to it.

Commits

Files