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.
No, I don’t use GHA locally, but the actions are defined to run the same things that I do run locally (e.g. invoke
nox
). I try to keep the GHA-exclusive boilerplate to a minimum. Steps can be like:Sometimes if I want a higher level interface to tasks that run
nox
or other things locally, I usetaskipy
to define them in mypyproject.toml
, like:Thanks for the introduction to taskipy. Think if i need macros, Makefile is the way to go. Supports running targets in parallel and i like performing a check to ensure the virtual environment is activated or the command won’t run.
make mypy
without the virtualenv on will write a warning message why it’s not working!Sure, but nox is the closer counterpart for in-venv-task definitions. List “sessions” with
-l
, pick specific sessions to run with-s
.Unfortunately it doesn’t currently do any parallel runs, but if anyone wants to track/encourage/contribute in that regard, see nox#544.