How to set python2 as my default?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How to set python2 as my default?
# 1  
Old 05-14-2019
How to set python2 as my default?

I am trying to figure out how to use update-alternatives to temporally set python2 as my default python interpreter. Currently, using the command:


Code:
sudo update-alternatives --config python

reports:


Code:
There is only one alternative in link group python (providing /usr/bin/python): /usr/bin/python3
Nothing to configure.

However, I do have python2 and python3 installed and working:


Code:
rob@linux044:~$ python
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
rob@linux044:~$ python2
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

Any idea how I could use update-alternatives to temporary set python2 as the default python interpreter? I was thinking:

Code:
sudo update-alternatives --install /usr/bin/python python3 /usr/bin/python2

or something similar should work but I am not sure and I dont want to attempt it and screw everything up.
# 2  
Old 05-14-2019
Hi Circuits...

In a short word, DON'T!
Python 2.x.x and 3.x.x are worlds apart.
If your install uses Python 3.x.x then leave well alone as it could well be used by the OS for other things during bootup and the like.
There is nothing to stop you using Python 2.x.x but expect significant differences between the two.
One simple major difference is Python 2.x.x uses print as a statement/command whereas Python 3.x.x has print() as a function.
Another important one is raw inputting is raw_input() in Python 2.x.x and just input() in Python 3.x.x.
Python 2.x.x input() is NOT the same as Python 3.x.x input() .
There are numerous more differences that you should recode anything you write to suit version 3.x.x as 2.x.x is not being supported after around 2020.

So to reiterate DON'T make python2 your default OR vice-versa!
# 3  
Old 05-14-2019
Yes I am well aware of the differences between py2 and py3 lol I have had to convert a handful of python scripts from 2 to 3 in the past. As far as I know neither the Linux OS or the DOS OS has any dependencies on Python. No I just need to temporarily move from py3 to py2 so that I can compile an older program and I would like to do it with update-alternatives so that I can easily change back after I compile the program.
# 4  
Old 05-14-2019
OK I will take your word for it...

Well if you wish to have Python 2.x.x temporarily you could try copying 'python' to 'python3' in probably the '/usr/bin/' drawer and then copying 'python2' to 'python'; and when finished change back again so that 'python3' becomes python again.
It should see the correct PYTHONPATH but don't quote me on it.

The only problem might be special modules, say for example 'scipy', might not be seen.
It is up to you but I still say DON'T! Even experienced professional programmers would think twice before messing.

EDIT:
You might need to be in 'root' to do this...

Last edited by wisecracker; 05-14-2019 at 02:26 PM.. Reason: See EDIT:
# 5  
Old 05-14-2019
For anyone in the future who might have stumbled upon this thread:

The easiest way to switch between Python 3 and Python 2:
Code:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 5

Code:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 4

The above will make Python3 the default. Then, to switch to python2:
Code:
 sudo update-alternatives --set python /usr/bin/python2

To switch back to python3:
Code:
sudo update-alternatives --set python /usr/bin/python3

These 3 Users Gave Thanks to Circuits For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help needed with shell script to search and replace a set of strings among the set of files

Hi, I am looking for a shell script which serves the below purpose. Please find below the algorithm for the same and any help on this would be highly appreciated. 1)set of strings need to be replaced among set of files(directory may contain different types of files) 2)It should search for... (10 Replies)
Discussion started by: Amulya
10 Replies

2. Solaris

LC_ALL & LANG are set OK, but others couldn't set locale correctly.

Hi, I have a Solaris (SunOS 5.10) installed, by default with the en_AU.UTF-8 locale. I want to change it to en_US.UTF-8 With AU, I have no issues whatsoever, so I installed the language package and now locale -a shows "en_US.UTF-8". Problem is even with LC_ALL set in etc/default/init, the... (2 Replies)
Discussion started by: asdfg
2 Replies

3. Shell Programming and Scripting

python2.3 to python2.6

Hi All i have a script written in python2.3 but it no longer works for python2.6 is there an easier way to check what needs to be changed (1 Reply)
Discussion started by: ab52
1 Replies

4. Web Development

[Urgent]Problem on setting up the apache2.2.6 and mod_wsgi3.2 and python2.5.4

Hi everyone, So far, I have done all the steps (including creating django.wsgi in the project). The step left is to turn on the httpd, but error put exit in this very last step.:( <user> #: ./apachetrl start httpd: Syntax error on line 450 of /usr/local/apache2/conf/httpd.conf: Cannot load... (1 Reply)
Discussion started by: AlexCheung
1 Replies

5. UNIX and Linux Applications

[Urgent]Problem on setting up the apache2.2.6 and mod_wsgi3.2 and python2.5.4

Hi everyone, So far, I have done all the steps (including creating django.wsgi in the project). The step left is to turn on the httpd, but error put exit in this very last step. :( <user> #: ./apachetrl start httpd: Syntax error on line 450 of /usr/local/apache2/conf/httpd.conf: Cannot... (1 Reply)
Discussion started by: AlexCheung
1 Replies

6. Shell Programming and Scripting

set Net:SSH:Expect timeout and set it again.

SSHing into a machine can take a few seconds, but after I'm in, the commands return quickly. I was wondering if the timeout setting can be changed once I'm logged into the machine. Does anyone know if this can be set on the fly? The problem here is, if I have to set timeout = 10, it'll take 10... (1 Reply)
Discussion started by: mrwatkin
1 Replies

7. UNIX for Dummies Questions & Answers

How to set server's ip address, router, network mask and set if it is an internal or external ip?

Hello, I need to write a program which sets server's ip address, router, network mask. Program also should set if it is an internal or external ip. Maybe someone can help me ? Any information from u is very useful :b: I stopped at .. :( #!/bin/sh A=`hostname -i` echo "server ip address is $A"... (4 Replies)
Discussion started by: zagaruika
4 Replies
Login or Register to Ask a Question