up vote 8 down vote favorite
14
share [g+] share [fb]

I recently upgraded my Mac OS X 10.5 Leopard install to 10.6 Snow Leopard, and with that came an upgraded version of Python, 2.6.1 (instead if 2.5.1). Now when I type python in the Terminal i still get

Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) 
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

I looked in /usr/bin/ and found that to get Python 2.6 I have to type python2.6.

The question is: How do I make the python command map to Python 2.6?

link|improve this question
feedback

4 Answers

up vote 6 down vote accepted

It’s easy:

defaults write com.apple.versioner.python Version 2.6

See man python for a complete explanation from Apple.

Also, one gotcha: make sure you are running the Python that came with your computer and not some other one that you installed. Do this by typing which python at your command prompt. It should point to /usr/bin/python. I only mention this because my default is 2.6 under Snow Leopard (it was 2.5 when I was using Leopard). So the fact that you are getting 2.5 may indicate that there’s something else in your path.

link|improve this answer
2  
You were right. I had a long time ago installed MacPython and that screwed up my PATH variable so python pointed to /Library/Frameworks/Python.framework/Versions/Current/bin. Naturally that didn't get upgraded to 2.6. So I replaced my PATH variable with the default one I found on Google, and will now remove MacPython from my system. – SBSTN Sep 4 '09 at 10:14
@SBSTN I've got the same problem (python path pointing to /Library/Frameworks/Python.framework/Versions/Current/bin) How do I change this? – Zach Mar 20 '11 at 20:56
Doesn't work with Xcode4 as there's no /Library/Frameworks/Python* anymore nor does /usr/bin/python point anywhere else. Any ideas? MacPorts would be a solutions but I don't want to install it. – Alexander Orlov May 11 '11 at 8:27
I’ve installed Xcode 4 and it still works as described. /usr/bin/python is an executable, not a link. /usr/bin/python2.6 is a link that points to ../../System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6. Given that the Python executable is in /System/Library it should be available regardless of whether/what version of Xcode is installed. – Nate May 11 '11 at 23:52
This doesn't do what people are asking. Not sure why it's the answer. – 010110110101 Jan 17 at 2:49
feedback

I would suggest using mac ports...

There is a package called python_select which allows using pythons in parallel. So first install mac ports if not already installed.

First install the python_select package:

sudo port install python_select

Already now you can check which python distributions are available on you system. Just issue the command:

port select --list python     (MacPorts 2.x)
python_select -l              (MacPorts 1.x)

In my case it printed at least python version which comes by default with Snow Leopard: python26-apple.

port select --show python     (MacPorts 2.x)
python_select -s              (MacPorts 1.x)

shows the currently selected version, e.g. python26-apple. So you see, this package nicely plays with Mac. For more options issue

port select                   (MacPorts 2.x)
python_select -h              (MacPorts 1.x)

Than you can search for available python version in the ports repository:

port search python

This will produce a long list will available pythons.

To install the desired packages, e.g. python 2.4 execute:

sudo port install python24

Now the python_select -s will show the freshly installed python as well. To switch to python 2.4 issue:

sudo port select --set python python24  (MacPorts 2.x)
sudo python_select python24             (MacPorts 1.x)

This command is persistent between shells.

link|improve this answer
feedback

Assuming you're using bash, type:

% type -a python

That will show you all "python" executables, aliases, shell builtins (likely none) or bash functions in your PATH.

This should help you better identify what's going on here.

link|improve this answer
feedback

You want to create a symlink to the desired version.

cd /Library/Frameworks/Python.framework/Versions 
sudo rm Current 
sudo ln -s /Library/Frameworks/Python.framework/Versions/2.6 Current

This removes the current pointer to your default Python version and sets it to your 2.6 version.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.