How can I update the default Python installation/fix my $PATH on Mac OS X 10.6.7?

51,539

Solution 1

I just solved this problem by installing Python 3.2.2 on my Mac OS X Lion so I thought I would post how I did it in the hopes someone may find it helpful.

Firstly, I agree with shadesandcolour in that you should not modify the default copy of python that came with your mac because there could be scripts that may not work properly when run using the Python 3.0+ interpreter. Having said that, to install that latest Python (3.2.2 at the time of this post), you should first download the Python installer from the official website. Install as per normal. Run the "Update Shell Profile.command" file in /Applications/Python(ver) folder.

After python has been installed, you need to edit your path by typing "sudo nano /etc/paths" at the command line. Next, enter your password when prompted. Next just "cut" the line "/usr/local/bin" and "paste" it BEFORE the occurrence of "/usr/bin". Save the file, close any open terminals and run a new instance of terminal. Now when you type "python" at the command line, the shell will search through /usr/local/bin first and run the latest copy of python.

Solution 2

From my experience, using symlinks along with a properly ordered PATH is the way to have multiple versions of Python coexist in OS X or any other nix I can think of. OS X is just a little bit goofy, but it works the same way.

First get the full picture by running the following commands:

which python

Then:

ls -la /usr/bin/python*

and compare with:

ls -la /usr/local/bin/python*

See where the symlinks are pointing.

Based on the PATH you posted, since /usr/bin comes after /usr/local/bin and the others you are probably using the System python interpreter:

/usr/bin/python

If you installed python3.0 it will likely run as:

/usr/local/bin/python

Now that you know what is pointing where, and what interpreter is being loaded from the PATH, you can make the appropriate changes to the PATH and/or symlinks. You can then use the same techniques to confirm the proper changes.

For more good information about python installation on macOS see dive into python3 and farmdev.

Share:
51,539

Related videos on Youtube

Admin
Author by

Admin

Updated on September 18, 2022

Comments

  • Admin
    Admin over 1 year

    I know this question has been asked before on this site, and I have found a couple worthy discussions, but the solutions I've found and tried do not work. I want to learn Python and I'm having trouble getting it set up properly on my Mac. I'm running OS X 10.6.7.

    I've downloaded the Python 3.2 installer from python.org and installed it, which installed to /Library/Frameworks/Python.framework/Versions/3.2/bin. This is fine for now as I can simply use IDLE to develop. In order to use 3.2 from the command line using python I tried to reorder my $PATH variable. This is what ~/.profile looks like:

    PATH=/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin
    

    However, python still launches 2.6.1:

    steven-macbook:~ steven$ python --version
    Python 2.6.1
    steven-macbook:~ steven$ . ./.profile
    steven-macbook:~ steven$ python --version
    Python 2.6.1
    steven-macbook:~ steven$ 
    

    After struggling with that for a while, I decided I should simply uninstall 3.2 and try and update the system installation of Python. I'm unsure of how to properly do that, so I either need to get 3.2 working with the command line or update 2.6.1.

  • Admin
    Admin almost 13 years
    /usr/local/bin/python doesn't exist but /usr/local/bin/python3 does. python3 --version gives my install (3.2). Can I simply rename that symlink to python so I don't have to type the 3?
  • unhappyCrackers1
    unhappyCrackers1 almost 13 years
    If your PATH is ordered correctly (/usr/local/bin comes after /usr/bin), then you could just create a symlink that does that.
  • unhappyCrackers1
    unhappyCrackers1 almost 13 years
    But if /usr/bin comes after /usr/local/bin then it will keep loading the system python (/usr/bin/python).
  • jrhorn424
    jrhorn424 about 12 years
    +1 since I've been trying to figure this out all day. Indeed, on Snow Leopard, if setting the PATH in your shell configuration isn't working, editing /etc/path as you've suggested works perfectly. For me, the problem was getting both graphical and terminal emacs to recognize I wanted to use a custom python installation. Thanks for the tip!
  • openwonk
    openwonk almost 5 years
    this worked if I also cd /usr/local/bin and cp python3.7 python and restarted my terminal.