10

I have both python3.6 and python3.5 on ubuntu (zesty beta 2). I know that python calls python2.7. The problem is, when I call python3, it automatically starts python3.5 instead of python3.6.

Is there a better way to fix this than an alias?

Ravexina
  • 55,668
  • 25
  • 164
  • 183

3 Answers3

10

Changing the default python3 version might break many things on your system, and I'd advise against making python3 point to python3.6. Better to simply call python3.6 explicitly in those programs where it matters, and leave the python3 symlink as is.

Gunnar Hjalmarsson
  • 33,540
  • 3
  • 64
  • 94
4

As an alternative to aliases you can use update-alternatives:

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

This command will create a link in: /usr/bin/python3 to /usr/bin/python3.6.

I'm not sure if it's a good idea, maybe an update makes it broken.

An other options is creating a link to desired version of python in ~/bin then adding this path to the $PATH environment variable:

export PATH=/home/$USER/bin:$PATH

Or within your .profile:

PATH=/home/$USER/bin:$PATH
Ravexina
  • 55,668
  • 25
  • 164
  • 183
  • 1
    This will break things that are expecting python3 to be python3.5 (as at 17.04). For example, launching a terminal will not work and the update indicator will fail. Actually breaks apt pretty badly. – Nick Perkins Jul 15 '17 at 23:02
0

Regarding your actual question (whether it's a good idea or not, I leave aside), you can check your /usr/bin/python3 version (in my case it was 3.4 ), and replace it with the new version:

$ python3 -V
  Python 3.4.9

$ ls -lh /usr/bin/python3
  lrwxrwxrwx. 1 root root  9 Dec  5 16:35 /usr/bin/python3 -> python3.4

$ sudo mv /usr/bin/python3 /usr/bin/_python3
$ sudo cp /usr/bin/python3.6 /usr/bin/python3

$ python3 -V
  Python 3.6.6
Noam Manos
  • 309
  • 5
  • 8
  • 1
    It's not a good idea. Don't do this, it will break things like Gnome Terminal and APT. – wjandrea Sep 05 '20 at 23:36
  • 1
    @wjandrea, that's why I explicitly said to put aside "whether it's a good idea or not". I simply answered the OP question: How to change python3 from python3.5 to python3.6 ? – Noam Manos Sep 07 '20 at 12:12
  • Just because you can doesn't mean you should. – wjandrea Sep 07 '20 at 12:38