As in every other OS, while you can have different Python interpreter versions installed at the same time, only one of those can be the “default python” (the one you get when calling python3.
In Haiku, that default is Python 3.10 (the only package that provides cmd:python3 / /bin/python3.
The other ones get built and packaged as --alt-install (meaning… they only provide version suffixed commands, like /bin/python3.13, bin/pydoc3.13, etc., and not python3 / pydoc3, to avoid clobbering files from other installed versions.
We don’t provide packaged (.hpkg) files for setuptools anymore, except for the current “default Python version” (3.10). In fact, the aim (to avoid getting overwhelmed by the work needed to “repackage all python things” for multiple versions) currently is to only provide .hpkg files for 3.10, and only where really needed (due to dependencies on other tools/apps we need or want to provide).
Other than that… specially for user of Python interpreter versions other than the “default” one… users are expected to rely on pip (would be pip3.13 in case of @grexe), to manage dependencies they may have.
In fact, we now don’t even package pip for other versions (and I expect to drop the pip .hpkg altogether soon).
Instructions on how to install pip for whatever Python version a user needs (matching the interpreter they intend to use, of course), are given in each Python interpreter package description.
In general, those are:
Note: to install "pip" for this Python version, use the following commands:
> python3.13 -m ensurepip --altinstall
> python3.13 -m pip install --upgrade pip
And then you should be able to use "pip3.13" normally.
I had open a PR for possibly allowing end-users to select their “default Python”, but that needs way more testing (and review by more experienced devs).
My aim (as the guy currently doing most of the python-related updates) is to provide .hpkg files for all the active Python interpreters (so end-users don’t have to do that themselves), but we cannot provide re-packaged versions for every Python module in existence, times X python versions.
So, suggestion is… either stick with “default Python in Haiku” (3.10 ATM), and see if what we provide as .hpkg is enough, or do as Pythonistas do, and rely on the package manager that the language provides: pip.
A lot of things can simply be installed via “pip” (pip3.13 in this case), like setuptools, for example. Others, cannot without patches or tweaks during build time to accommodate to Haiku-related differences to other platforms. When possible we try to upstream things (help welcomed here! I sometimes don’t have the patience or skills to deal with upstreams), sometimes upstreams just do not care about Haiku support.
I understand your frustration @grexe as a user, things ain’t better as a (re)packager.
In any case… always open to any help on improving the current state of things.