Upgrading python

John Roth newsgroups at jhrothjr.com
Wed Jul 30 15:52:59 EDT 2003


"Bengt Richter" <bokr at oz.net> wrote in message
news:bg93pm$72v$0 at 216.39.172.122...
> On 30 Jul 2003 06:43:22 +0200, martin at v.loewis.de (Martin v.
=?iso-8859-15?q?L=F6wis?=) wrote:
>
> >Stephen Boulet <stephen at theboulets.net> writes:
> >
> >> When I upgrade from 2.2.3 to 2.3 on windows, do I first uninstall
2.2.3?
> >
> >If you want to, you can have both 2.2 and 2.3 installed, side-by-side.
> >If you want to replace 2.2, you should uninstall it first.
> >
> How do I know what will happen to file extension associations and the
system path search
> that takes unadorned python and finds some/path/to/python23.exe?
>
> And how does the old python22 find what it needs? Do I need to go through
a .cmd file that
> sets up its environment before running? How do I know everything it needs?
>
> IOW, how do you set up a clean way to run both 2.2.3 and 2.3 "side by
side" but separately,
> with default "python" going to 2.3?  I am being lazy in not reading the
install docs yet,
> but does it cover the question fully? If so, the answer to this post can
just be "yes" ;-)

As with most things having to do with installation, the answer is a bit
complicated. On Windows, Python keeps its information in separate
keys by major release, so there's a different key for Python 2.2 and Python
2.3. That's compiled into the executable, so anything that's in the registry
is kept nice and separate. So you can have two or more major releases
side by side. You can't have two minor releases, though, because they
use the same registry key.

The keys aren't secret, so any outboard programs that need a specific
version of Python can go right to it. Where the difficulty lies is that
other things, such as the system path for finding executables and the
file name associations don't have the same facility. So if I wanted to
just be able to doubleclick on a .py or .pyc file and have it find the
correct executable, I'm out of luck unless I do some arcane system
programming. (That is, associate them with a program that figures
out from the directories or the "magic number" which version of
python is wanted, and then invokes it.)

If all you want is for the default to be 2.3, then just make certain
that the system path goes to the proper directory. All your
file name associations will tag along as long as the command
keys didn't include full paths.

And I find that .cmd files are my friends. I use them to set the
Pythonpath so I don't have to figure out a path that's going to
work for everything, now and forever. And they work very
well for drag and drop targets for those little utilities that operate
on one file...

John Roth

>
> Regards,
> Bengt Richter






More information about the Python-list mailing list