# Inspiration
| Tool | Date added | Version |
| --------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------- |
| [`pymanager exec`](https://peps.python.org/pep-0773/#exec-subcommand) | [2025-10-08](https://github.com/python/pymanager/releases/tag/25.0) | [25.0](https://github.com/python/pymanager/releases/tag/25.0) |
# Purpose
Same as bare `py` in terms of semantics/purpose (or skip and push people towards [[#`py run`]]?).
Other workflow tools do not have an equivalent command. Everyone else has their `run` command execute the command as found in the virtual environment if a path is not provided, i.e. `run python`.
# Notes
- `--version`/`--python`: specify the Python version, much like e.g. `-3.12`
- `uv` uses `--python`
- `--ignore-venv`/`--exclude-venv`/`--skip-venv`/`--omit-venv`/`--no-venv`: exclude virtual environments from the list of potential interpreters ([poll on flag name](https://fosstodon.org/@brettcannon/114394209663606574))
- `--`: All flags following are passed on to the interpreter
- Used by [`uv run`](https://docs.astral.sh/uv/reference/cli/#uv-run)
- Not necessary if flags required upfront before hitting a path or unrecognized flag
- `-m`: Equivalent to `-m` to the interpreter
- Pragmatic shortcut to minimize need to specify `--` for the `-m` common case
- Argument parsing stops once a path, `-m`, or `--` is found