How to set Python3.5.2 as default Python version on CentOS?

I would suggest using alternatives instead.

As super-user (root) run the following:

# Start by registering python2 as an alternative
alternatives --install /usr/bin/python python /usr/bin/python2 50

# Register python3.5 as an alternative
alternatives --install /usr/bin/python python /usr/bin/python3.5 60

# Select which Python version to use
alternatives --config python

The last command will ask you to choose between registered/installed alternatives.

As always, well most of the time anyways, you can check out the manual (linux man pages) using this simple command

man alternatives

Note:

Altho this answer refers to/make use of specific Python versions, the alternatives command, it's concepts and uses remain the same regardless of version numbers. It is strongly suggested that you read/learn more about the alternatives command in order to understand how it can help you better manage and use your system. Also, there is a good chance that some will correct bad/unusual practices currently in use on their machines. I see it with a great majority of people which i introduce to the concept. Here is a link to a very good and simple explanation of the alternatives command.


As the question goes, Linux CentOS 7, how to set Python3.5.2 as default Python version?

Will like to complement @OldFart's answer( Unforunately, can't comment else I would have).

when using the install param with update-alternatives, you can set the priority in auto mode. Implicitly saying that the alternative with the highest priority will be the default alternative should no alternative have been set manually. using the above answer as an example,

update-alternatives --install /usr/bin/python python /usr/bin/python2 50

will set the python2 alternative with a priority of 50, and

update-alternatives --install /usr/bin/python python /usr/bin/python3.5 60

will set the python3.5 alternative with a priority of 60. and by default, the python 3.5 becomes the default python executable for the python command.

should you want to change your default python alternative,

update-alternatives --config python

Find this a better approach as i don't have to modify my path files.


If this

sudo ln -fs /usr/bin/python3.5 /usr/bin/python

doesn't work (it should)

you could just add an alias into your /home/.bashrcwith this command:

alias python="/usr/bin/python3.5"

and if this does not work either you should just use virtual env. Read this page to get started.


Option 1) Creating a soft link actually has a drawback. "yum" does not support Python3. so, if you still decide to go with symlink creation then you also need to update the /usr/bin/yum

ln -s /usr/bin/python3 /usr/bin/python

And update the shebang line with #!/usr/bin/python2 in /usr/bin/yum file

Option 2) use alternatives

alternatives --install /usr/bin/python python /usr/bin/python3.x 60
alternatives --config python 

Option 3) create an alias in bash_profile

alias python="/usr/bin/python3"