Fedora 29 intoduces Python 3.7, which adds numerous new features and optimizations compared to version 3.6, which was the default Python 3 stack in Fedora 28. Notable changes include:
awaitare now reserved keywords.
asynciomodule has received new features and significant usability and performance improvements.
timemodule has gained support for functions with nanosecond resolution.
The unversioned python command from
/usr/bin/python has been moved into a separate
You will get it by default when you install the
python2 package, but you are able to remove it.
python3 command if you need Python 3, and the
python2 command if you need Python 2.
python command continues to mean Python 2, but it is not guaranteed to be present.
See the Change page for detailed information and justification for this change.
virtualenv command now comes from the
python3-virtualenv package, as opposed to earlier releases where the command was in the
This effectively switches the command to Python 3; if you run
virtualenv without any additional options, it will create Python 3 environments. Use
virtualenv -p python2.7 to get the previously default behavior.
ansible package in Fedora is switching to use Python 3 by default, instead of Python 2. See Automation for details.
The current way of automatic Python byte-compiling of files outside Python-specific directories is too magical and error-prone. It is built on heuristics that are increasingly wrong. This change provides a way to opt out of it, and adjusts the guidelines to prefer explicit bytecompilation of such files. Later, the old behavior will either become opt-in only, or cease to exist.
Note that bytecompilation in Python-specific directories (e.g.
/usr/lib/python3.6/) is not affected.
See the Fedora Wiki change page for detailed documentation.
Multiple package groups have been updated to use
python3 by default instead of
See Distribution-wide Changes for more information.