The Python Launcher for UNIX
An implementation of the py
command for UNIX-based platforms.
The goal is to have py
become the cross-platform command that all Python users
use when executing a Python interpreter. Not only is it is short and to the
point, but it also provides a single command that documentation can use in
examples which will work regardless of what operating system a user is on.
Lastly, it side-steps the "what should the python
command point to?" debate by
clearly specifying that upfront (i.e. the newest version of Python that is
installed).
Search order
py -3.6
- Search
PATH
forpython3.6
py -3
- Search
PATH
for all instances ofpython3.Y
- Find the executable with largest
Y
py
- Search
PATH
for all instances ofpythonX.Y
- Find the executable with largest
X.Y
version
TODO
PEP 397: Python launcher for Windows (documentation)
- Specifying the version
- Environment variables
- Shebang line parsing
- Only the first argument if it's a file and doesn't start with
-
- Not necessary, but nice to have
- Only the first argument if it's a file and doesn't start with
py -0
- Output well-formatted JSON to start in order for it to be consumable?
- Output column format like
pip list
?
py -h
emits its own help before continuing on to callpython
- Configuration files
- Customized commands
- Want a better format like TOML?
- Want to use
Pipfile
and itspython_version
field? - Probably want a way to override things, e.g. wanting a framework build on macOS somehow
- Aliasing? E.g.
2.7-framework=/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
? - Just provide a way to specify a specific interpreter for a specific version? E.g.
2.7=/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
- Aliasing? E.g.