This package will install Python $FULL_VERSION for Mac OS X
$MACOSX_DEPLOYMENT_TARGET for the following 
architecture(s): $ARCHITECTURES.

Separate installers are available for older versions
of Mac OS X, see the homepage, below.

Installation requires approximately $INSTALL_SIZE MB of disk
space, ignore the message that it will take zero bytes.

You must install onto your current boot disk, even
though the installer does not enforce this, otherwise
things will not work.

Python consists of the Python programming language
interpreter, plus a set of programs to allow easy
access to it for Mac users including an integrated development
environment, IDLE, plus a set of pre-built extension modules
that open up specific Macintosh technologies to Python programs.

The installer puts the applications in "Python $VERSION" 
in your Applications folder, and the underlying machinery in
$PYTHONFRAMEWORKINSTALLDIR. It can optionally place
links to the command-line tools in /usr/local as well,
by default you have to add the "bin" directory inside
the framework to you shell's search path.

More information on Python in general can be found at
http://www.python.org.
