Updated for 2.0b1

This commit is contained in:
Jack Jansen 2000-09-10 12:02:28 +00:00
parent e61aca7d4a
commit 8a6cdccf21
5 changed files with 124 additions and 146 deletions

View File

@ -7,11 +7,9 @@
<HR>
This document explains how to build MacPython from source. This is
necessary if you want to write extension modules for 68K Python, and
is also necessary if you want to make modifications to the Python core.
Building Python is not something to be undertaken lightly,
you need a reasonable working
knowledge of the CodeWarrior development environment, a good net
necessary if you want to make modifications to the Python core. Building
Python is not something to be undertaken lightly, you need a reasonable
working knowledge of the CodeWarrior development environment, a good net
connection and probably quite some time too. <p>
The information density in this file is high, so you should probably
@ -43,49 +41,42 @@ at <A HREF="http://www.cwi.nl/~jack/macpython.html">
http://www.cwi.nl/~jack/macpython.html</A> (which has up-to-date links
to the other packages needed too) and possibly also from the standard
<A HREF="ftp://ftp.python.org/pub/python/mac">python.org ftp
site</A>. Everything you need is also included in the standard Python
source distribution, but the organization is different. Look in
directory <code>Mac/mwerks/projects</code> for the project files and
related stuff. <BR>
site</A>. <BR>
An alternative is to check the sources straight out of the CVS
A better alternative is to check the sources straight out of the CVS
repository, see below. Most of the packages mentioned here are also
available through CVS. Check the section on <a href="#cvs">CVS
repository use</a> below.
<LI> You need MetroWerks CodeWarrior. The current distribution has
been built with CodeWarrior Pro 4. Ordering information is
been built with CodeWarrior Pro 5.2. Ordering information is
available on the <A HREF="http://www.metrowerks.com/">MetroWerks
homepage</A>. Building Python with MPW or Think/Symantec C is
probably impossible without major surgery.
<LI> You need GUSI, the Grand Unified Socket Interface, by Matthias
Neeracher. The original CWGUSI is
obtainable from <A
HREF="ftp://sunsite.cnlab-switch.ch/software/platform/macos/src">
ftp://sunsite.cnlab-switch.ch/software/platform/macos/src</A>.
At the moment Python is built with a slightly modified version of GUSI,
these modifications are available in folder <code>Python:Mac:GUSI-mods</code>. <br>
<LI> You need GUSI version 2, the Grand Unified Socket Interface, by
Matthias Neeracher. The original GUSI is obtainable from <A
HREF="ftp://sunsite.cnlab-switch.ch/software/platform/macos/src/mw_c">
ftp://sunsite.cnlab-switch.ch/software/platform/macos/src/mw_c</A>. At
the moment Python is built with a slightly modified version of GUSI
2.1.1, so it may be better to check the <A
HREF="http://www.cwi.nl/~jack/macpython.html">MacPython homepage</A>
for a GUSI that is most easily used for building Python.
<br>
The modified GUSI is also in the MacPython cvs source repository, in the
directory <code>lib-src/CWGUSI</code>. However, some files contain slashes in
their names, something CVS seriously frowns upon, and each slash has been
replaced by <code>"_s_"</code>. There is a script
<code>Mac:scripts:fixgusidir.py</code> which you should run after checking CWGUSI
out
directory <code>lib-src/GUSI2</code>. As GUSI is moving to sourceforge
this info may be outdated by the time you read it so better check the
MacPython homepage, probably.
</UL>
<A NAME="optional">The MacPython project files are configured to
include a plethora of optional modules</A>, and these modules need a
number of extra packages. To use the project files as-is you have to
download these packages too. PPC and CFM68K Python have all such modules as
download these packages too. Python has all such modules as
dynamically loaded modules, so if you don't need a certain package it
suffices to just refrain from builing the extension module. For static 68K
Python things are a bit more complicated: you have to edit the
interpreter project file to remove the reference to the module (and
the libraries it uses), and edit the <code>Mac:mwerks:mwerks_nonshared_config.h</code>
file to remove the <code>USE_...</code> line. Here are the locations for the various things
suffices to just refrain from builing the extension module.
Here are the locations for the various things
you need:
<UL>
@ -134,7 +125,7 @@ access paths try to set things up as follows:
<PRE>
Top-level-folder:
CWGUSI
GUSI2
imglibs
jpeg
netpbm
@ -159,25 +150,21 @@ Top-level-folder:
If your setup of the libraries is exactly the same as mine (which is
not very likely, unless you happen to work from the same CVS
repository) you can use the project <code>buildlibs.prj</code> in the
<code>:Mac:build.mac</code> folder to build all needed libraries in one
<code>:Mac:Build</code> folder to build all needed libraries in one
fell swoop, otherwise you will have to build the libraries one by
one. <p>
First build GUSI. If you didn't get the python-specific GUSI you have to
move the files from the "CWGUSI-mods" to the right
place in the CWGUSI distribution folder. Build the MSL version for your
platform (ppc, 68k, cfm68k). <p>
<em>Note:</em> always rebuild the CWGUSI libraries, even if you have
checked them out from the CVS repository. <P>
massage some of the Python code (missing routines) and you'll miss the
functionality of "delay console".
<p>
Next, in
<code>MoreFiles</code>, <code>libjpeg</code>, <code>pbmplus</code>,
<code>libjpeg</code>, <code>pbmplus</code>,
<code>zlib</code>, <code>libpng</code>, <code>gdbm</code>,
and<code>libtiff</code> you build all projects. Usually the projects are in "mac"
subfolders, sometimes they are in the main folder. Tcl/tk is a special
case, see below. Of course, if you are only interested in one of
static 68K, CFM68K or PPC you can skip building the other libraries.
case, see below.
<H2><A NAME="tcltk">Building Tcl/Tk</H2>
@ -222,14 +209,12 @@ folders:
<DL>
<DT> Demo
<DD> Demo programs that are not Mac-specific. Some of these may not
work, the file <code>README-Mac</code> has some details.
work.
<DT> Extensions
<DD> Extensions to the interpreter that are not Mac-specific. Contains
the <code>img</code>, <code>Imaging</code> and <code>Numeric</code> extensions
in this distribution. Nowadays, the extensions are all built in their own
folders (unlike in older distributions, where img was incorporated in the main
build procedure).
the <code>img</code>, <code>Imaging</code> and <code>Numerical</code> extensions
in this distribution.
<DT> Grammar
<DD> The Python grammar. Included for reference only, you cannot build
@ -243,7 +228,7 @@ the parser on a Mac.
on the Mac.
<DT> Objects
<DD> Machine-independent code for various objects. Most of these are
<DD> Machine-independent code for various object types. Most of these are
not really optional: the interpreter will not function without them.
<DT> Parser
@ -254,11 +239,12 @@ not really optional: the interpreter will not function without them.
are unix-specific and not used on the Mac.
<DT> Tools
<DD> Tools for python developers. Contains <code>modulator</code>
which builds skeleton C extension modules and <code>bgen</code> which
generates complete interface modules from information in C header
files. There are some readme files, but more documentation is sorely
needed.
<DD> Tools for python developers. Contains <code>modulator</code> which
builds skeleton C extension modules, <code>bgen</code> which generates
complete interface modules from information in C header files and
<code>freeze</code> which is used to turn Python scripts into real
applications (used by MacFreeze and BuildApplication) There are some
readme files, but more documentation is sorely needed.
</DL>
@ -271,8 +257,8 @@ resulting binaries, except for intermedeate results, are deposited in
the toplevel folder or the Mac:PlugIns folder (for plugin modules).
<DT> Compat
<DD> Unix-compatability routines. Some of these are not used anymore,
since CWGUSI provides a rather complete emulation, but you may need
<DD> Unix-compatability routines. Most of these are not used anymore,
since GUSI provides a rather complete emulation, but you may need
these if you are trying to build a non-GUSI python.
<DT> Demo
@ -339,25 +325,14 @@ but for more control over the freezing process you can run the main script here.
<H2>Building the 68K interpreter</H2>
If you have all the optional libraries mentioned <A
HREF="#optional">above</A> loaded building Python for 68K macs is a
breeze: in the Mac:Build folder you build the libraries with buildlibs.prj
and then the interpreter with PythonStandalone.prj. <p>
68K Python is no longer supported, and the projects are not included in the
source distirbution anymore. If you really want to build Python for the 68K
your best bet is to check the sources out of the CVS repository. The latest
projects (in :Mac:build:) that support 68K development are tagged as such,
and are dated around August 2000. If you plan on doing this announce it on
the SIG, please. <p>
If you were previously running another copy of this Python release,
from a binary installer for instance, you should
first remove the <code>Python XXX preferences</code> file from your
preference folder. Next, run the interpreter, in the toplevel folder. This will
create a correct initial preferences file. You are now all set, and
your tree should be completely compatible with a binary-only
distribution. Read the release notes
(<code>Relnotes-somethingorother</code>) and
<code>ReadMe</code> in the <code>Mac</code> folder. <p>
If something goes wrong you may end up with a garbled preferences file. Removing
it from the system folder and running Python once again will re-create it.
<H2>Building the PPC and CFM68K interpreter</H2>
<H2>Building the PPC interpreter</H2>
First you optionally build the external libraries with buildlibs.prj. Next,
the projects for
@ -371,14 +346,16 @@ For completeness sake here is a breakdown of the projects:
<DL>
<DT> PythonCore (with subprojects PythonCorePPC and PythonCoreCFM68K)
<DT> PythonCore (with subproject PythonCorePPC)
<DD> The shared library that contains the bulk of the interpreter and
its resources. It is a good idea to immedeately put an alias to this
shared library in the <code>Extensions</code> folder of your system
folder. Do exactly that: put an <em>alias</em> there, copying or
moving the file will cause you grief later if you rebuild the library and
forget to copy it to the extensions folder again. The InstallPython applet
will also do this, along with creating the plugin aliases.
will also do this, along with creating the plugin aliases. <br>
Note that the subproject looks a bit silly nowadays (with no more CFM68K
support) but you will have to live with that for this release.
<DT> PythonInterpeter
<DD> The interpreter. This is basically a routine to call out to the
@ -387,11 +364,12 @@ creating applets (for which formerly PythonApplet was used). <p>
<DT> Plugin projects
<DD> Each plugin module has a separate project. The <code>Plugins.prj</code>
project tries to build them all, but is known to be flakey under CW Pro 4.
project tries to build them all, but is known to be flakey. See <code>fullbuild</code>
below for a better way to build everything.
</DL>
After creating the alias to <code>PythonCore</code> you remove any old
<code>Python XXX Preferences</code> file from the <code>Preferences</code> folder
<code>Python 2.0b1 Preferences</code> file from the <code>Preferences</code> folder
(if you had python installed on your system before) and run the interpreter once
to create the correct preferences file. <p>
@ -409,10 +387,10 @@ easiest done with the <code>fullbuild</code> script from
Actually, the <code>fullbuild</code> script can be used to build
everything, but you need a fully-functional interpreter before you can
use it (and one that isn't rebuilt in the process: you cannot rebuild
a running program). You could copy the 68K interpreter to a different
place and use that to run fullbuild, or use the standalone PPC python
for this. I tend to keep a standalone interpreter in a safe place for
this use only. <p>
a running program). You could copy the interpreter to a different
place and use that to run fullbuild. The <code>PythonStandSmall.prj</code>
project builds an interpreter that is suited to this, and it can also come
in handy if you need to debug things (which is easier in a static program). <p>
</BLOCKQUOTE>
@ -441,7 +419,7 @@ those routines have to be in the same code fragment as they are used from.
<H2><a name="cvs">Using the CVS source archive</a></H2>
It is possible to access the Python sources through remote CVS. The
It is possible (and probably best) to access the Python sources through remote CVS. The
advantage of this is that you get the very latest sources, so any bug
fixed or new features will be immedeately available. This is also the
disadvantage, of course: as this is the same tree as is used for
@ -461,7 +439,7 @@ filetypes, and this can seriously hinder you if, for instance, <code>.bmp</code>
is not a Windows bitmap file. <p>
The machine-independent Python sources are checked out from the main
Python CVS archive, see the <a
Python CVS archive on sourceforge.net, see the <a
href="http://www.python.org/download/cvs.html">Source access via
CVS</a> page for details. When you check the sources out you will get
something like <code>Python:dist:src</code>, and under that the
@ -503,12 +481,11 @@ Some remarks that I could not fit in elsewhere:
<LI> It may be possible to use the <code>PythonCore</code> shared
library to embed Python in another program, if your program can live
with using GUSI for I/O. Use PythonCore in stead of your MSL C library
(or, at the very least, link it before the normal C library). Let me
know whether this works.
(or, at the very least, link it before the normal C library).
<LI> It is possible to build PPC extension modules without building a
complete Python. The binary distribution installer can optionally install
all the needed folders. A template for a dynamic module can be found in
all the needed folders (the develop option). A template for a dynamic module can be found in
<code>xx.prj</code>.
<LI> The Python shared library architecture is a variant of the architecture

View File

@ -6,9 +6,9 @@
<H1>Embedding Python on the Mac</H1>
<HR>
<B>Note</B>: if you have a binary-only release of MacPython you will not
have this demo installed. Go to
have this demo installed. Install the developer option (in the standard installer) or go to
<a href="http://www.cwi.nl/~jack/macpython.html">Jack's MacPython Page</a>
to download either a source or a development release if you want to embed
to download either a source release if you want to embed
Python in other applications. <p>
Embedding Python on the mac is pretty similar to embedding it on other

View File

@ -23,8 +23,7 @@ The easiest way to create an application from a Python script is simply by dropp
it on the <code>BuildApplication</code> applet in the main Python folder.
BuildApplication has a similar interface as BuildApplet: you drop a script on
it and it will process it, along with an optional <code>.rsrc</code> file.
It does ask one extra question: whether you want to build your application for
PPC macs only, 68K macs or any Mac.<P>
<P>
What BuildApplication does, however, is very different. It parses your script,
recursively looking for all modules you use, bundles the compiled code for

View File

@ -1,9 +1,9 @@
<HTML>
<HEAD>
<TITLE>Using Python 1.5 on the Macintosh</TITLE>
<TITLE>Using Python 2.0 on the Macintosh</TITLE>
</HEAD>
<BODY>
<H1>Using Python 1.5 on the Macintosh</H1>
<H1>Using Python 2.0 on the Macintosh</H1>
<HR>
This document is an introduction to using Python on the Apple
@ -15,26 +15,32 @@ tutorial, and provides some additional material. <p>
The tutorial, along with other indispensible documentation like the
library reference and such, is also available in a number of different
formats at <a href="ftp://ftp.python.org/pub/python/doc">
ftp://ftp.python.org/pub/python/doc</a>. The Adobe Acrobat <code>.pdf</code>
formats at <a href="http://www.python.org">
www.python.org</a>. The Adobe Acrobat <code>.pdf</code>
files are probably a good choice for reading or printing the documents
from your mac. <p>
There is currently no good tutorial for the mac-specific features of
Python, but to whet your appetite: it has interfaces to many MacOS
toolboxes (quickdraw, sound, quicktime, open scripting, etc) and
various portable toolboxes are available too (Tk, stdwin, complex
various portable toolboxes are available too (Tk, complex
numbers, image manipulation, etc). Some <A HREF="index.html">
annotated sample programs</A> are available to give you an idea of
Python's power. <P>
<h2>Invoking the interpreter</h2>
<h2>Using Python</h2>
The name of the interpreter may differ on different installations: it
may be called <CODE>PythonFAT</CODE> (for powerpc macs and 68K macs with
CFM68K installed) or <CODE>Python68K</CODE> (for 68K macs).
It will always
be recognizable by the "16 ton" icon, though. You start the
The best way to start using Python is by using the <code>Python IDE</code>,
an integrated development environment with editor, debugger, class browser, etc.
Unfortunately the IDE is not yet documented here. Fortunately, however, it does not
need much documentation, so your best bet is to try it. <p>
<h2>Invoking the bare interpreter</h2>
An alternative method to use Python (and the method this document unfortunately emphasizes,
see the comment above) is to use the bare interpreter and an external text editor.
The name of the interpreter is <CODE>PythonInterpreter</CODE> and it is
recognizable by the "16 ton" icon. You start the
interpreter in interactive mode by double-clicking its icon: <p>
<img src="html.icons/python.gif"><p>
@ -417,7 +423,7 @@ The next section to check out is the <a href="index.html">annotated sample progr
<HR>
<A HREF="http://www.cwi.nl/~jack">Jack Jansen</A>,
<A HREF="mailto:jack@cwi.nl">jack@cwi.nl</A>, 27-Apr-98.
<A HREF="mailto:jack@cwi.nl">jack@cwi.nl</A>, 10-Sep-00.
</BODY>
</HTML>

View File

@ -1,4 +1,4 @@
How to install Python 1.6a2 on your Macintosh
How to install Python 2.0b1 on your Macintosh
---------------------------------------------
If this is your first encounter with Python: you definitely need the
@ -13,39 +13,29 @@ now. The documentation is in HTML format, start with index.html.
Caveats
-------
This is an alfa version, and for this once it really means that: there
are quite a few features that have only lightly been tested, and bugs are
to be expected.
This is a beta version, so use with caution.
Aside from the general Python 1.6 features like unicode support the
main new features of this MacPython release is support for multithreading.
This has had some preliminary testing, but please report any success or failure
on the mailing list.
Aside from the general new Python 2.0 features (compared to 1.5.2, there
was no 1.6 for the macintosh) like unicode support the main new features
of this MacPython release is support for multithreading. This has had
some preliminary testing, but please report any success or failure on
the mailing list.
This installer installs MacPython for PowerPC only, whether a 68K distribution
of Python 1.6 will happen is not certain at the moment.
Changes since 1.6a1
-------------------
- All core-Python changes, plus a few from after 1.6a2, approximately as the
Python CVS tree was at May 5.
- The threading performance bug has been fixed.
- Tkinter is included again (yeah!), but only lightly tested. Please report
findings to the mailing list.
- macfsn.py is auto-imported on startup (unless disabled with a new option).
This retrofits macfs.StandardGetFile() and friends to use Navigation Services
in stead of the old Standard File dialogs.
- I think all installer problems have been fixed. Please report if not so.
This installer installs MacPython for PowerPC only, if you really want
68k support you will have to stay with 1.5.2. Or, if you are willing to
invest the time and have access to CodeWarrior you are welcome to try
and build a 68k distribution, most of the projects and sources are
reasonably up to date (May 2000). Contact me for details.
What to install
---------------
This installer is PPC only: too many new MacOS features are not available on 68K,
and doing workarounds, even just #ifdeffing in the code, is too much work for
me right now. If someone wants to revive 68K-MacPython: please do so. The project
files still contain the 68K targets (they're simply skipped by the build process)
so all that is needed is CodeWarrior, a source distribution and commitment.
This installer is PPC only: too many new MacOS features are not
available on 68K, and doing workarounds, even just #ifdeffing in the
code, is too much work for me right now. If someone wants to revive
68K-MacPython: please do so. The project files still contain the 68K
targets (they're simply skipped by the build process) so all that is
needed is CodeWarrior, a source distribution and commitment.
The optional parts in this distribution are
- TK+PIL: Tkinter and support modules, plus Imaging, the Python image manipulation
@ -54,13 +44,16 @@ The optional parts in this distribution are
than imaging, but has only limited operations on images. There is a bridge
between the packages.
- Numeric: the LLNL Numeric Python extension. All sorts of nifty operations
on matrices and such.
on matrices and such. This is the most recent version from the sourceforge archive.
- Developers kit: all header files and some tools and sample projects to get you started on
writing Python extensions if you have CodeWarrior.
All these except the DevKit are installed with Easy Install.
After the installer finishes it automatically launches the
ConfigurePython applet, to finish configuration of your Python.
If you have previously installed another copy of 2.0b1 you should manually
remove your preference file first (but no such action is needed for installing
beside older MacPythons, and they will live together happily).
If you don't have enough memory: the sizes choosen are somewhat
arbitrary. Try lowering the application sizes in the finder "get info"
@ -71,14 +64,10 @@ necessary to increase the application size.
After installing
----------------
The first step thing you could try is to run "compileall.py" to create
all .pyc files, but this isn't very important, as pyc files are
created on-the-fly as well. You may also want to skip this step if you
are low on diskspace.
Next, it is probably a good idea to run the automatic tests. Start
Python and "import test.autotest". This should not print only one error, about some
AM/PM format not supported in strftime.
It is probably a good idea to run the automatic tests. Start
Python and "import test.autotest". This should print only 2 or 3 errors, about some
AM/PM format not supported in strftime, about a MemoryError in test_longexp and
about a memory error in test_zlib.
It will, however, print some messages about optional features
not supported. Also, if you didn't run compileall before autotesting
you may run out of memory the first time you run the
@ -91,32 +80,39 @@ debugger and other goodies. The alternative is to use PythonInterpreter,
which is the lowlevel interpreter with a console-window only (similar to Unix
Python).
If your program uses Tkinter you MUST run it under PythonInterpreter, Tkinter
and IDE are incompatible and your program will fail in strange ways.
Uninstalling
------------
Two items are installed in the system folder: the interpreter shared
library "PythonCore 1.6a2" lives in the Extensions folder and the
"Python 1.6a2 Preferences" file in the Preferences folder. All the rest
of Python lives in the folder you installed in.
library "PythonCore 2.0b1" lives in the Extensions folder and the
"Python 2.0b1 Preferences" file in the Python subfolder in the
Preferences folder. All the rest of Python lives in the folder you
installed in.
Things to see
-------------
Start off at Mac:Demo:index.html. Read at least the first few sections.
There are also some readme files in the "Read me files" folder that may
There are also some interesting files in the "Relnotes" folder that may
contain useful information. There is also a first stab at documentation
(plus examples) in the Mac:Demo folder. The toplevel Demo folder has
machine-independent demos.
The Mac:Lib:test folder also has some programs that show simple
capabilities of various modules.
The "scripts" folder has some sample scripts. Some are useful, some are
The ":Mac:scripts" folder has some sample scripts. Some are useful, some are
just interesting to look at to see how various things work. The MkDistr,
mkapplet and fullbuild scripts (plus the ones mentioned above) may help
you to understand how to use AppleEvents and various other toolboxes
from python.
Other mac-specific goodies can be found in :Mac:Tools, of which the IDE sources
and a CGI framework deserve special mention.
The 'img' group of modules, which handles I/O of many different image
formats is included, but without documentation. You can find docs at
ftp://ftp.cwi.nl/pub/jack/python/img (or somewhere around there).
@ -133,7 +129,7 @@ that this means you can keep your older version around if you are unsure
whether to upgrade. The bad news is that your old preference settings
are lost and you have to set them again.
After you are satisfied that 1.6a2 works as expected you can trash
After you are satisfied that 2.0b1 works as expected you can trash
anything in the system folder that has "python" in the name and not
"1.6a2".
@ -159,8 +155,8 @@ Thanks!
Thanks go to the whole Python community with Guido in the lead, of course.
Mac-specific thanks go to the pythonmac-sig, Just van Rossum, Corran Webster,
Erik van Blokland, Bill Bedford, Chris Stern, Gordon Worley, Oliver Steele, M. Papillon
and all the other people who provided feedback, code or both!
Erik van Blokland, Bill Bedford, Chris Stern, Gordon Worley, Oliver Steele, M. Papillon,
Steven Majewski and all the other people who provided feedback, code or both!
Feedback
--------