python3 package is now updated to latest version 3.9 in Fedora 33. Previously, In Fedora 32
python3 package version 3.8 was supported which is now updated.
This latest update of Python 3.9 will provide many enhancements. Some of the major highlights are:
Added merge (
|) and update (
|=) union operators to
Type hinting generics in standard collections.
Supports more flexible function and variable annotations.
Provides relaxing grammar restrictions by allowing decorators to be any valid expression.
Support for the IANA time zone database in the
removesuffixstring methods will remove prefixes and suffixes from a string.
CPython now uses a new parser based on parsing expression grammar (PEG).
When you upgrade Fedora from versions 32 to Fedora 33, the main Python interpreter version changes from 3.8 to 3.9.
If you have any Python packages installed using
pip, you must complete the following procedure to migrate them to the new version:
Install previous version of
sudo dnf install python3.8
pipfor the previous Python version:
python3.8 -m ensurepip --user
Observe the installed packages:
python3.8 -m pip list
Save the list with specific versions:
python3.8 -m pip freeze > installed.txt
Install the same packages for the now default version:
python3 -m pip install --user -r installed.txt
Uninstall user-installed packages for Python 3.8; this ensures proper removal of files in
python3.8 -m pip uninstall $(python3.8 -m pip list --user | cut -d" " -f1)
Optionally, clean up the now empty directory structure:
rm -rf ~/.local/lib/python3.8/
Optionally, remove the unneeded Python version:
sudo dnf remove python3.8
Additionally, if you have any
pip packages installed using
sudo, run the following commands before running the final step above which removes `python3.8`, or install it again temporarily:
pipfor the previous Python version for
sudo python3.8 -m ensurepip
Observe the system-installed packages:
sudo python3.8 -m pip list
Uninstall installed packages for 3.8; this ensures proper removal of files in
sudo python3.8 -m pip uninstall $(python3.8 -m pip list | cut -d" " -f1)
Optionally, clean up now empty directory structure:
sudo rm -rf /usr/local/lib*/python3.8/
If you followed the first procedure, the packages are already installed for your user account, which is the preferred option. Avoid using
python26 packages are retired without replacement from Fedora 33. The packages will no longer be available from the repositories, but it may remain on existing installations. Both packages have been kept in Fedora for legacy reasons, and their continued maintenance has been proving more and more difficult while providing a decreasing benefit to the distribution, which is why they are now gone.