So, I have a python script I’d like to run from time to time from the CLI (on Linux) that resides inside a venv. What’s the recommended/intended way to do this?
Write a wrapper shell script and put it inside a $PATH-accessible directory that activates the virtual environment, runs the python script and deactivates the venv again? This seems a bit convoluted, but I can’t think of a better way.
Sure, but nox is the closer counterpart for in-venv-task definitions. List “sessions” with
-l
, pick specific sessions to run with-s
.import nox from nox.sessions import Session nox.options.reuse_existing_virtualenvs = True APP_NAME = 'logging_strict' @nox.session(python='3.12') def mypy(session: Session): """Static type checker (in strict mode)""" session.install('-U', 'mypy', '.') session.run('mypy', '-p', APP_NAME, *session.posargs)
Unfortunately it doesn’t currently do any parallel runs, but if anyone wants to track/encourage/contribute in that regard, see nox#544.