[Pythonmac-SIG] Upgrading to 2.4.1
Chris Barker
Chris.Barker at noaa.gov
Fri Apr 22 18:36:40 CEST 2005
Bob Ippolito wrote:
> On Apr 22, 2005, at 4:38 AM, Yair Benita wrote:
>> If it co-exist how do I control which one is used when simply typing
>> /usr/bin/python at the command line?
>
> NEVER EVER change anything in /usr (except /usr/local) or /System. DO
> NOT EVER DO THAT. BAD.
I think the OP was not proposing that, but rather was trying to figure
out how to run the different pythons. So to give a little more info:
Apple puts their python (2.3.0) in:
/usr/bin/python
When you install 2.4.* (and any python that isn't supplied by Apple,
hopefully), it will not put it in /usr/bin . It should put it in
/usr/local/bin/python (or maybe /opt/... or /sw/....)
So, after installing python2.4, you'll have two "python" executables,
but they won't be in the same place. This is where PATH comes in.
try typing:
$PATH
at the command line. It will give you a colon separated list of paths
that bash looks for executables in. It looks in the order given, so if
you have /usr/local/bin and /usr/bin in your path, and there is a python
in each one, it will find the one in the path that comes first in the
list. Many folks recommend manipulating your PATH as the way to set the
default python. For instance, if you put:
export PATH=/usr/local/bin:$PATH
in your .profile file (there are other placed to put it as well, search
the web for suggestions), then bash will find the new version first, and
run that when you type "python".
However, the most common way to specify python in a script is:
#!/usr/bin/env python
This lets the shell figure out where python is, rather than specifying
the exact path. This is nice, and makes your scripts more portable, but
it means that if you manipulate PATH, you'll change what it found, and
old scripts that depend on the old python will stop working (this was an
infamous problem with RedHat Linux a while back, I don't know if they've
fixed it.)
Because of this, I don't recommend altering your default python in that
way. I put:
export $PATH:PATH=/usr/local/bin
in my .profile, so that the system one is found first. By the way, this
doesn't just affect python, it affects every command line program. I
don't want to accidentally change the default anything.
Want I do instead is specify the version I want at the command line or
in the script:
$ python2.4
or
#!/usr/bin/env python2.4
(or python2.3, of course)
There should be a /usr/local/bin/python2.4 after you install 2.4. If not
the distribution is broken, but you can fix it easily with a link.
This way, after you upgrade, anything you write now can use python2.4,
and anything you wrote before can still use 2.3.
I hope that helped.
You know, this is enough of FAQ, it must be in the Wiki by now. If not,
I guess I should add it (or perhaps the OP could put this in)
-Chris
--
Christopher Barker, Ph.D.
Oceanographer
NOAA/OR&R/HAZMAT (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker at noaa.gov
More information about the Pythonmac-SIG
mailing list