Disclaimer

Warning

Edited: 2020-12-28 16:53:45 UTC

Instead of using below method please consider adding a new/multi python version on your system. According the python version you want, look at one of the articles below:

Since below method may cause system error: probably break apt or misconfiguration of the system.

Intro

In this article, we upgrade to python 3.7 from python 3.6 and configure it as the default version of python.

I was just trying to upgrade my python and I find it a little bit hard to do. Python 3.6 is the default version that comes with Ubuntu 18.04/18.10 But the latest version is Python 3.8. So it would be better to upgrade one major version.

So lets start:

Step 0: Check the current python version

Run below command to test the current version installed of python.

$ python3 --version

Output will be like:

python 3.6.8

Step 1: Install python3.7

Install python by typing:

$ sudo apt update -y
$ sudo apt install python3.7

Step 2: Add python 3.6 & python 3.7 to update-alternatives

$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2

Step 3: Update python 3 to point to python 3.7

By default, Python 3.6 is pointed to Python 3. That means when we run python3 it will execute as python3.6 binary but we want to execute this as python3.7.

Type this command to configure python3:

$ sudo update-alternatives --config python3
user@ubuntu1804:~$ sudo update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python3).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3.6   2         auto mode
  1            /usr/bin/python3.6   1         manual mode
  2            /usr/bin/python3.7   2         manual mode

Press <enter> to keep the current choice[*], or type selection number:

You should get the above output. Now type 2 and hit enter for Python 3.7. Remember the selection number may differ so choose the selection number which is for Python 3.7.

Alternative update python 3 to point to python3.7

/usr/bin/python3 is just a symlink. Delete it and make a new symlink to python3.7:

$ sudo rm /usr/bin/python3
$ sudo ln -s python3.7 /usr/bin/python3

Step 4: Test the new version of python3

$ python3 -V

All done!


Changelog

  • 2020-03-10 : Add disclaimer and warning
  • 2020-12-28 : Add newer alternative python versions