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, command-line tools in
/usr/local/bin and the underlying machinery in
$PYTHONFRAMEWORKINSTALLDIR.

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