Python updated to 3.10

Fedora 35 updates the Python stack from Python 3.9 to Python 3.10, the newest major release of the Python programming language.

Information about the new features in Python 3.10 can be found at the Python website.

Notes on migrating user-installed pip packages

When you upgrade from an earlier release to Fedora 35 the main Python interpreter version changes from 3.9 to 3.10. If you have any Python packages installed using pip, you must complete the following procedure to migrate them to the new version:

  1. Install the previously main Python version:

    sudo dnf install python3.9
  2. Get pip for the previously main Python version:

    python3.9 -m ensurepip --user
  3. Observe the installed packages:

    python3.9 -m pip list
  4. Save the list with specific versions:

    python3.9 -m pip freeze > installed.txt
  5. Install the same packages for the now default version:

    python3 -m pip install --user -r installed.txt
  6. Uninstall user-installed packages for 3.9; this ensures proper removal of files in ~/.local/bin:

    python3.9 -m pip uninstall $(python3.9 -m pip list --user | cut -d" " -f1)
  7. Optionally, clean up the now empty directory structure:

    rm -rf ~/.local/lib/python3.9/
  8. Optionally, remove the unneeded Python version:

    sudo dnf remove python3.9

Additionally, if you have any pip packages installed using sudo, run the following commands before running the final step above which removes `python3.9`, or install it again temporarily:

  1. Get pip for the previously main Python version for root:

    sudo python3.9 -m ensurepip
  2. Observe the system-installed packages:

    sudo python3.9 -m pip list
  3. Uninstall installed packages for 3.9; this ensures proper removal of files in /usr/local/bin:

    sudo python3.9 -m pip uninstall $(python3.9 -m pip list | cut -d" " -f1)
  4. Optionally, clean up now empty directory structure:

    sudo rm -rf /usr/local/lib*/python3.9/

If you followed the first procedure, the packages are already installed for your user account, which is the preferred option. Avoid using sudo pip in the future; these instructions are only intended to recover users who already used sudo pip in the past.

Python 3.5 is retired

The python3.5 package is no longer in Fedora Linux 35. Python 3.5 has been End-of-Life since September 2020 and was retained in previous versions of Fedora to enable developers to test software targeting Ubuntu 16.04 “Xenial Xerus” LTS and Debian 9 “Stretch” LTS. As these target platforms reach their End-of-Life, this package is no longer required. For more information, see the Changes page.