I just downloaded Python 3.6.1, but when I type python3 -V in the terminal it's still Python 3.5.3. How can I make python3 point to Python 3.6? All versions are in the /usr/bin/ directory.
            Asked
            
        
        
            Active
            
        
            Viewed 1.1e+01k times
        
    53
            
            
        
        Willem Van Onsem
        
- 443,496
 - 30
 - 428
 - 555
 
        ian-campbell
        
- 1,605
 - 1
 - 20
 - 42
 
- 
                    What do you mean with "downloaded"? Did you "installed" it? How? – Willem Van Onsem May 02 '17 at 17:05
 - 
                    `sudo apt-get install python3.6` – ian-campbell May 02 '17 at 17:09
 
6 Answers
96
            do
rm /usr/bin/python3
ln -s /usr/bin/python3.6 /usr/bin/python3
much better solution:
Damn, Python is used throughout much of Ubuntu for system scripts and software, and software relies on having Python (and the commands to start Python) in a certain spot. do back then.
rm /usr/bin/python3 
ln -s /usr/bin/python3.5 /usr/bin/python3 
create alias in ~/.bash_aliases 
alias python3='/usr/bin/python3.6' 
Scripts can then start with something like:
#!/usr/bin/env python3 
        tso
        
- 4,732
 - 2
 - 22
 - 32
 
- 
                    1`ln: failed to create symbolic link '/usr/bin/python3.6': File exists` – ian-campbell May 02 '17 at 17:14
 - 
                    You need to swap the arguments for `ln` to work: `ln -s /usr/bin/python3.6 /usr/bin/python3` – Laurent S May 02 '17 at 17:18
 - 
                    1
 - 
                    Correct, it worked with `ln -s /usr/bin/python3.6 /usr/bin/python3` – ian-campbell May 02 '17 at 17:18
 - 
                    2This solution actually broke my Ubuntu terminal. Something in the background is/was depending on `python3` pointing at `Python 3.5.3` and not `Python 3.6.1`. Not sure what, though. – ian-campbell May 02 '17 at 21:38
 - 
                    3Damn, Python is used throughout much of Ubuntu for system scripts and software, and software relies on having Python (and the commands to start Python) in a certain spot. do back then.
`rm /usr/bin/python3` `ln -s /usr/bin/python3.5 /usr/bin/python3` create alias in ~/.bash_aliases `alias python3='/usr/bin/python3.6'` Scripts can then start with something like: `#!/usr/bin/env python3` – tso May 03 '17 at 06:00 
6
            
            
        You could update the default python version system-wide using update-alternatives command.
$ sudo update-alternatives  --set python3 /usr/bin/python3.6
or you can also run the following command to choose among the various python versions installed on a host.
$ sudo update-alternatives --config python
        Tushar Gautam
        
- 458
 - 6
 - 19
 
3
            
            
        If you are looking for other than the accepted answer. Here is the solution that saved my life. This is to replace it with new version.
$ python3 --version
  Python 3.5.2
$ ls -lh /usr/bin/python3
  lrwxrwxrwx 1 root root 9 Mar 23  2016 /usr/bin/python3 -> python3.5
$ sudo mv /usr/bin/python3 /usr/bin/_python3
$ sudo cp /usr/bin/python3.6 /usr/bin/python3
$ python3 --version
  Python 3.6.11
        Masood
        
- 121
 - 4
 
2
            
            
        first step
ln -sf /usr/bin/python3.6 /usr/bin/python3
second step
vim .bashrc
alias python3='/usr/bin/python3.6'
        Sajibe Kanti
        
- 181
 - 1
 - 9
 
-1
            
            
        Method 1:
pip install virtualenv virtualenv name_of_projectMethod 2
py -3 -m venv name_of_project
        Vivek p.s
        
- 1
 - 3
 
- 
                    - pip install virtualenv * - virtualenv envname or py -3 -m venv name_of_project – Vivek p.s May 11 '22 at 11:39