19

I want to use the macports version of python instead of the one that comes with Leopard.

Joshua
  • 26,234
  • 22
  • 77
  • 106
  • 2
    You should not uninstall default python from OS X, this may make your system unstable because Python is an important OS component. Instead you can use macports to add other instances of python. – sorin May 28 '11 at 12:29

7 Answers7

29

Don't. Apple ships various system utilities that rely on the system Python (and particularly the Python "framework" build); removing it will cause you problems.

Instead, modify your PATH environ variable in your ~/.bash_profile to put /opt/local/bin first.

jacobian
  • 4,648
  • 3
  • 19
  • 11
  • i think this is true also of different linux distro's, various library /package/software installers rely on the perl, python , ruby factory installed interpreters, you should leave them there, symlink around them – Gene T Nov 22 '08 at 19:22
22

I have both installed:

$ which python
/usr/bin/python
$ which python2.5
/opt/local/bin/python2.5

I also added the following line to my .profile:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
Greg Hewgill
  • 951,095
  • 183
  • 1,149
  • 1,285
  • What should the new python at /opt/local/bin look like? I installed Python via MacPorts and it had no effect on any of the python* files in /opt/local/bin. They're all symlinks to the system Python. This is on Snow Leopard. – thebossman Jan 07 '11 at 04:35
20

Use the python_select port to switch python interpreters.

sudo port install python25
sudo port install python_select
sudo python_select python25

This will symlink /opt/local/bin/python to the selected version. Then export PATH as described above.

bryan
  • 2,223
  • 1
  • 22
  • 19
17

python_select is now deprecated, use this instead:

sudo port select python python26
axel22
  • 32,045
  • 9
  • 125
  • 137
chipiik
  • 171
  • 1
  • 2
4

Instead of uninstalling the built-in Python, install the MacPorts version and then modify your $PATH to have the MacPorts version first.

For example, if MacPorts installs /usr/local/bin/python, then modify your .bashrc to include PATH=/usr/local/bin:$PATH at the end.

John Millikin
  • 197,344
  • 39
  • 212
  • 226
3

I wouldn't uninstall it since many scripts will expect python to be in the usual places when they do not follow convention and use #!/usr/bin/env python. You should simply edit your .profile or .bash_profile so the macports binaries are the first in your path.

Your .profile should have this line:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

If not, add it in, and now your shell will search macport's bin/ first, and should find macports python before system python.

freespace
  • 16,529
  • 4
  • 36
  • 58
3

The current Macports installer does the .profile PATH modification automatically.

Simo Salminen
  • 2,306
  • 2
  • 14
  • 11