Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installed Python 3.8 on Ubuntu, but it's not the default

I have downloaded Python 3.8 on my Ubuntu 16.04 and if i write python3.8 it shows it is present, but when I write python --version I am getting my old Python version which was 3.5

like image 895
GAURAV SHARMA Avatar asked Dec 10 '19 17:12

GAURAV SHARMA


1 Answers

Set an alias:

alias python=python3.8

Then running python in Bash will run python3.8.

To make the change permanent, put the alias line in ~/.bashrc. It will take effect when you open Bash.


Symlinks

Why not symlink /usr/bin/python to python3.8?

Ubuntu follows PEP 394 which says the python command should point to Python 2. However an alias works since it only affects your shell. It doesn't even affect scripts you write, meaning if you want a script to run in Python 3.8, you'll have to write it explicitly in the shebang, e.g. #!/usr/bin/env python3.8 instead of #!/usr/bin/env python.

Why not at least symlink /usr/bin/python3 to python3.8?

Some things will break since there are version-specific libraries. For example _gi is not available for Python 3.8 on Ubuntu 16.04, so Gnome Terminal will not open. See Gnome terminal will not start on Ask Ubuntu for an example.


More details

  • How to make 'python' program command execute Python 3? on Ask Ubuntu
like image 154
wjandrea Avatar answered Oct 13 '22 21:10

wjandrea