I have been fiddling with my Python installation on Ubuntu 12.04 (I was having trouble installing a python library), and at one point my python
command wasn't working. It turned out the symlink was missing (I must have removed it by accident lol), so I made a new one pointing to Python 3.2 (originally pointed to 2.7):
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.2 /usr/bin/python
Problem: the software center and update manager weren't working:
~$ software-center
File "/usr/bin/software-center", line 152
print time.time()
^
SyntaxError: invalid syntax
I guessed this was because I had changed the default python version (2.7->3.2), so I changed it back to 2.7. Now they work fine, but I'd still like to change the 'default' python version (i.e. the one called with python
in the terminal).
Is it possible to do that in Ubuntu 12.04?
Thanks!
You shouldn't change the symlink for
python
to point to Python 3 as you have already seen its consequences. And I would recommend you to get into the habit of calling Python 3 programs withpython3
as that would involve the least amount of trouble later on.But if you insist on calling Python 3 on your Terminal using
python
, you may create an alias for it. Remember, alias is different than symlink. Edit~/.bash_aliases
file (create it if it doesn't exist) to add the following in it:Then restart your terminal and you would be able to execute Python 3 by calling
python
. This wouldn't break anything as changing the symlink does.You may even add aliases like
alias py3='python3.2'
and then callpy3
to run Python 3. This is even shorter and less confusing.Don't do that:
/usr/bin/python
being the default Python2 version of your distro. They will likely break if it is something else.python
command calls Python2. Most Python programs will break if it calls Python3 instead.Instead use
/usr/bin/python3
if you want to use Python3