I don't see a way to change current and global versions of python/venvs to run scripts, so that when I type "python" it uses that, without making an alias.
export PATH="$(uv run python -BISc 'import sys; print(sys.base_exec_prefix)')/bin:$PATH"
2. Put this in an executable file called "python" early in your PATH:
#!/bin/sh
exec uv run python $*
Those are basically what pyenv does (via a symlink and PATH entry).
The second option will always pick up the Python local to the project directory you're in, if any. The former (if you put it in your shell profile) will not.
I specifically want to run "python", rather subcommands for some other command, since I often I want to pass in arguments to the python interpreter itself, along with my script.
> I don't see a way to change current and global versions of python
You really shouldn't be doing this. Utilities on your host rely on the system python being stable, unchanged, pinned to a very specific python version; also with exact versions for dependencies.
For example in fedora/rhel, changing the default platform-python will prevent you from using yum/dnf to apply system updates.
1. Modify your PATH:
2. Put this in an executable file called "python" early in your PATH: Those are basically what pyenv does (via a symlink and PATH entry).The second option will always pick up the Python local to the project directory you're in, if any. The former (if you put it in your shell profile) will not.