How do I change my PYTHONPATH to make 3,2 my default Python instead of 2.7.2?

95,633

Solution 1

It's not good to change the default python. Many system programs depends on python2 not python3. if you want to use python3, you just type the command python3.

Solution 2

The PYTHONPATH doesn't have much to do with it. It just tells the Python interpreter, whichever interpreter runs, where to find extra modules you want to load.

But either way, changing the default version on your system is dangerous, as other commenters have observed. You stand the risk of breaking existing package that are built against Python2 and use /usr/bin/env python to find their interpreters.

In fact, that's the wrong way to phrase it. Changing the default version of Python will break your entire Ubuntu system and cause lots of programs to just not work. It's also completely unnecessary.

But since you asked, you just do this:

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.2mu /usr/bin/python

Happy crashing!

Solution 3

I added this in my .bashrc, its working fine so far:

alias python='python3'

Solution 4

According to this you can setup your enviroment variable or just add new import path folder. But I recommend to use virtualenvs for python projects if you will want to have some flexibility.

Solution 5

Here is the safest way to do this - using update-alternatives

Share:
95,633

Related videos on Youtube

max
Author by

max

Updated on September 18, 2022

Comments

  • max
    max over 1 year

    I have python3.2 located in /usr/lib/python3.2. I am not sure if that means it's installed but I assume it is for now.

    Some facts about my system:

    $ which python
    /usr/local/bin/python
    

    When I type python in terminal I get the following

    $ python
    Python 2.7.2 (default, Dec 19 2011, 11:12:13) 
    [GCC 4.4.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    

    Then to find the path I do

    >>> sys.info
    >>> sys.path
    ['', '/usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg', '/usr/local/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg', '/usr/local/lib/python2.7/site-packages/PIL-1.1.7-py2.7-linux-x86_64.egg', '/usr/local/lib/python27.zip', '/usr/local/lib/python2.7', '/usr/local/lib/python2.7/plat-linux2', '/usr/local/lib/python2.7/lib-tk', '/usr/local/lib/python2.7/lib-old', '/usr/local/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages']
    

    So knowing all of this, how do I change my default system python from 2.7.2 to 3.2?

  • Eric Mill
    Eric Mill almost 10 years
    For support libraries and tools (like pyenv, fabric), they expect /usr/bin/env python to be what you want. So manually typing python3 isn't the solution.
  • HelloGoodbye
    HelloGoodbye about 8 years
    That will work as long as you don't call python from a script, which doesn't have access to your aliases.