Add new site management commands for running pip and python.
Review Request #12998 — Created April 30, 2023 and submitted — Latest diff uploaded
This introduces two new special commands for
rb-site manage
:pip
andpython
. These are used to executepip
andpython
,
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 runningrb-site
will be used.pip
always usespythonX.Y -m pip
.The
python
command is conceptually distinct fromshell
, 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
executeipython
orbpython
).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
orpython
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.