Python 3.9.0 Released, How to Install via PPA in Ubuntu

Last updated: October 6, 2020

Python programming language 3.9.0 was released with new features and optimizations. Here’s how to install it in Ubuntu 16.04, Ubuntu 18.04, and Ubuntu 20.04 via PPA.

Python 3.9.0 is the first version default to the 64-bit installer on Windows. Windows 7 is unsupported.

Python 3.9.0 release highlights:

  • Module State Access from C Extension Methods
  • Union Operators in dict
  • Type Hinting Generics In Standard Collections
  • Flexible function and variable annotations
  • Python adopts a stable annual release cadence
  • Relaxing Grammar Restrictions On Decorators
  • Support for the IANA Time Zone Database in the Standard Library
  • String methods to remove prefixes and suffixes
  • New PEG parser for CPython
  • Garbage collection does not block on resurrected objects;
  • os.pidfd_open added that allows process management without races and signals;
  • Unicode support updated to version 13.0.0;
  • when Python is initialized multiple times in the same process, it does not leak memory anymore;
  • A number of Python built-ins (range, tuple, set, frozenset, list, dict) are now sped up using PEP 590 vectorcall;
  • A number of Python modules (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) now use multiphase initialization as defined by PEP 489;
  • A number of standard library modules (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by PEP 384.

How to Install Python 3.9.0 in Ubuntu:

1.) Open terminal either by pressing Ctrl+Alt+T on keyboard, or by searching for ‘terminal’ from system application launcher.

When terminal opens, run command to add the “deadsnakes” team PPA:

sudo add-apt-repository ppa:deadsnakes/ppa

Type user password (no asterisk feedback) when it prompts and hit Enter to continue.

2.) Then run commands to refresh system package cache, and install Python 3.9:

sudo apt update

sudo apt install python3.9

3.) Once successfully installed, check your system Python versions (python –version):

4.) (NOT Recommended) To use Python 3.9 as the default python3, run commands:

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2

For Ubuntu 16.04 and Ubuntu 18.04, replace python3.8 in the code with system’s default python3 version..
And you can then switch between the two Python3 versions via command:

sudo update-alternatives --config python3

NOTE: Due to known bug, terminal won’t open if you changed python3 symlink. An workaround is recreate a symlink via command (Replace python 3.8 with your system default python3 version):

sudo rm /usr/bin/python3; sudo ln -s python3.8 /usr/bin/python3

Uninstall:

To uninstall the Python3.9 packages, run command:

sudo apt remove --autoremove python3.9 python3.9-minimal

To remove the Deadsnakes PPA, launch Software & Updates and go to Other Software tab, then remove the repository line and close the window.

Twitter

I'm a freelance blogger who started using Ubuntu in 2007 and wishes to share my experiences and some useful tips with Ubuntu beginners and lovers. Please comment to let me know if the tutorial is outdated! And, notify me if you find any typo/grammar/language mistakes. English is not my native language. Contact me via [email protected] Buy me a coffee: https://ko-fi.com/ubuntuhandbook1

3 responses to Python 3.9.0 Released, How to Install via PPA in Ubuntu

  1. great description !

  2. Those instructions will make problem to apt manager, pip3 and other system modules. Generally changing default system python3 version is a great headacke.
    It seems that it is not enough just to make changes to link /usr/bin/python3 but also to /usr/bin/python3-config.

  3. Note that for some tools that have not updated to using the new built-in venv, e.g. using Pipenv in PyCharm, you will probably need to do

    sudo apt install python3.9-distutils -y

    See https://github.com/nodejs/node/issues/30189#issuecomment-548535264 and https://github.com/nodejs/node/issues/30189#issuecomment-734153557 for more info.