11

I have installed ubuntu 18.04 in virtual box and when trying python -v, it says you have python3 installed, I want to remove python 3 or disable so that can use python2.7 and run some scripts i have.

slava
  • 3,887
Rahul
  • 151
  • @karel: thanks for the info. I checked again with a live system and found that it is also not installed in 18.10. – Takkat Dec 25 '18 at 16:15
  • @karel Thank you. Close vote retracted and previous comments redacted :) +1 for your answer as well :) – WinEunuuchs2Unix Dec 25 '18 at 16:38
  • 4
    FYI: Python 2 will lose upstream support in a little over a year, so you should make plans to either fork Python or migrate to Python 3 soon. – Kevin Dec 25 '18 at 17:40
  • @Rahul Use python2 or python3 instead of just python, because in some systems (Arch for example) python without version runs Python 3 by default (I think Ubuntu will do the same at some point). Agreeing with Kevin, you should migrate to 3.x (as of late 2018, there are only a few 2.x-only libraries) – trolley813 Dec 28 '18 at 07:43
  • Fun part here is that some older ubuntu 18.04 still have python symlinked to python2.7 (after installing it) but now ubuntu 18.04.02 doesn't create this symlink. That sounds just weird when you realize 18.04 is LTS... – Ikar Pohorský May 29 '19 at 08:19

5 Answers5

21

Python 2 is no longer installed by default in fresh installations of Ubuntu 18.04 and later. Don't remove python3 from Ubuntu 18.04 and later or else Ubuntu Software, the terminal and many other apps that are installed by default will stop working. If you removed Python 3 and now Ubuntu Software, terminal and other applications don't work follow the instructions in this answer to reinstall it and get all applications working again.

To install Python 2.7 in Ubuntu 18.04 and later open the terminal and type:

sudo apt install python2.7  

To start the Python 2.7 interpreter run this command:

python2.7

To start the Python 3 interpreter run this command:

python3  

Either way the Python interpreter will show a version message when it is started that shows what version of Python you are running.

karel
  • 114,770
7

1) To install Python 2 version on Ubuntu 18.04 open up terminal and enter:

sudo apt install python-minimal

or

sudo apt install python2.7

Check version:

python --version


2) If still python 3+ updated list of Python alternatives to perform a switch between any python version is to run:

update-alternatives --config python

Example:

There are 2 choices for the alternative python (providing /usr/bin/python).

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

Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in manual mode

and select an appropriate version using selction integer as shown above.


3) If you see: update-alternatives: error: no alternatives for python. Run:

ls /usr/bin/python*

Example output:

/usr/bin/python  /usr/bin/python2  /usr/bin/python2.7  /usr/bin/python3  /usr/bin/python3.5

Next, update the Python alternatives list for each version you whish to use with priority 1 and 2:

update-alternatives --install /usr/bin/python python /usr/bin/python3.5 1
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2

Then run again update-alternatives --config python and select an appropriate version..

slava
  • 3,887
  • Could you please clarify what exactly is last two commands are doing here, One more question is i changed in my script from #!/usr/bin/python to #!/usr/bin/python2.7. Is it possible to change the env path for python2.7 to /usr/bin/python – Rahul Dec 25 '18 at 08:52
  • @Rahul When you use python as a command on terminal the alternatives/aliases are considered. But in scripts as you are the absolute path of python so you need to use the path of python version you want to use. – Kulfy Dec 25 '18 at 08:56
  • @Rahul, sorry fixed. In this commands you set priority in last numeric params (2 and 1). – slava Dec 25 '18 at 09:16
  • I cannot upvote your answer enough. Legend! – Kris Bonev Jun 06 '19 at 13:53
7

In Ubuntu 18.04 LTS both Python 2.7, and Python 3 are installed by default:

enter image description here
Screenhot from live session

In 18.10. and in 19.04 it will not be installed in a live session:

enter image description here

You will have to intall Python 2.7 manually before you can use it.

sudo apt install python

Applications depending on it will install it as a dependency.

Takkat
  • 142,284
3

You don't need to remove or disable python3 on your Ubuntu.

If you just need python to run small scripts, you can simply install Python 2 as @karel's answer.

If you start learning Python, I suggest you to use virtual environment or conda

thangdc94
  • 940
  • yes got it now, installed python2.7 and checked whereis python2.7 and made script using that env.. Thanks – Rahul Dec 25 '18 at 08:39
  • Usually, I don't install package from conda, I install package by pip. I just use conda to create global access virtual env. – thangdc94 Dec 25 '18 at 09:37
2

No need to disable python 3. You can execute python 2.7 using command

python2 filename.py.

You can check python 2 versions by

python2 --version