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 executepipandpython,
respectively, using the correct version of the site.If the site is installed with an embedded
venvdirectory, 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.Ybinary for the current version of Python runningrb-site
will be used.pipalways usespythonX.Y -m pip.The
pythoncommand 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
executeipythonorbpython).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
orpythonusage within a site. Documentation will be updated
separately to show this usage.
Tested using the
pipcommand for installing, uninstalling, and listing
packages. Tested this with both a virtualenv install and a traditional
global install.Tested using the
pythoncommand as a shell, command runner (using-c),
and piping a script to it.