Currently when I use "python" command, it points to python2.6. I have installed python3.1 and I want the "python" command point to python3.1. How it is possible?
mahmood@mpc:~$ which python
/usr/bin/python
mahmood@mpc:~$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 2010-11-24 16:14 /usr/bin/python -> python2.6
mahmood@mpc:~$ uname -a
Linux orca 2.6.32-24-server #39-Ubuntu SMP Wed Jul 28 06:21:40 UTC 2010 x86_64 GNU/Linux
You could follow this procedure:
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.1 /usr/bin/python
But as already stated by Petr Viktorin, any programs that would expect python v2 would stop to work. So use with caution. You can undo the change by running:
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python2.6 /usr/bin/python
Since you have Linux, and if you want to simply type "python" instead of "python3" in order to run Python programs, a solution is simply to define an alias in you shell configuration file (.bashrc, etc.). For Bourne shells, it should be something like
(or whatever your Python 3 name is).
This way, you do not have to change anything on your system, so this solution should quite innocuous and it should not break your system.
On Linux/Mac OS you can use
python3
instead ofpython
.It is not advisable.
You could write at the top in your own script (a shebang):
If you're on Windows then install
pylauncher
. It understands#!
.On Linux to make your script executable, run once:
After that, to run your script:
For interactive use you could create virtualenv as @Petr Viktorin points out. To install/upgrade (versions from Ubuntu's repositries are too old):
Follow instructions in
/path/to/virtualenvwrapper.sh
, to create virtualenv that usespython3
:To activate virtualenv:
In an active virtualenv
python
refers to/path/virtualenv/bin/python
. So you could run:Try update-alternatives for Linux.