The Fedora Packaging Guidelines for Python recommends that packages that offer a python3 subpackage use the %python_provide macro to provide python-packagename, as it will appropriately select python2 or python3 based on the version of Fedora[1]. Currently in Fedora Rawhide, which corresponds to Fedora 30, Python 2 packages are being removed whenever possible[2]. Additionally, Python 3 was effectively declared to be the default version of Python whenever possible starting in Fedora 22[3]. Despite this, the %python_provide macro still marks the python2 subpackage as the one providing python-packagename, rather than the python3 subpackage[4]. This should be changed at the very least in rawhide. [1]: https://fedoraproject.org/wiki/Packaging:Python#The_.25python_provide_macro [2]: https://bugzilla.redhat.com/show_bug.cgi?id=1625773 [3]: https://fedoraproject.org/w/index.php?title=Packaging:Python&oldid=524457#Naming [4]: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/9b8fac037df29067489914477c388574845cb5e5/f/macros.python#_44
My understanding is that until 'dnf install python' gives python3, it makes no sense for 'dnf install python-*' to give python3 modules. The distro will at some point switch the meaning of "python" to be python3 instead of python2, but that time has not yet arrived.
Python should be spelled as "python3" in package names (or "python2" for the legacy version). For now, the unversioned name "python" is left for backwards compatibility. (Unfortunately, it does look like "a default".) We'd welcome help adjusting things that still *use* the unversioned name. They're tracked here: https://fedora.portingdb.xyz/namingpolicy/ The list is still too long to break everything on it.
This will likely get changed at least in Fedora 32.
Actually, we plan to attempt to change this for Fedora 31: https://fedoraproject.org/wiki/Changes/Python_means_Python3
This was done in rawhide.