# 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