cpython/Mac
Jack Jansen 5dd7362295 Hide the ProgressBar before raising KeyboardInterrupt. Not doing so resulted in a hang on Carbon. 2001-02-23 22:18:27 +00:00
..
Build 2.1a2 distribution files. 2001-02-17 22:12:43 +00:00
Compat No need to make the S_ constants 32 bit (and its actually harmful because of multiple defines). 2001-01-22 14:51:03 +00:00
Contrib Put all AE constants into AppleEvents.py 2000-12-12 22:13:36 +00:00
Demo Added a note that this file is incorrect for 2.1a2. 2001-02-17 22:04:13 +00:00
Distributions 2.1a2 distribution files. 2001-02-17 22:03:42 +00:00
IDE scripts Initial checkin of IDE scripts. (jvr) 1999-09-26 12:25:06 +00:00
Include 2.1a2 distribution files. 2001-02-17 22:03:42 +00:00
Lib Hide the ProgressBar before raising KeyboardInterrupt. Not doing so resulted in a hang on Carbon. 2001-02-23 22:18:27 +00:00
MPW moved bgen to Tools 1995-03-10 15:12:23 +00:00
Modules On OSX passing NULL to NewUniversalFilterProc() does not return NULL but a crashing UPP. This made ModalDialog (and, hence EditPythonPrefs and EasyDialogs and many others) crash. Fixed. 2001-02-20 22:27:43 +00:00
OSX Steven Majewski's instructions for building the toolbox modules for 2001-02-16 21:48:24 +00:00
PlugIns Starting on the new project/plugin structure. Far from complete... 1999-01-28 13:42:55 +00:00
Python Release a PYC resource after reading it. No need to keep it incore. 2001-02-21 15:48:19 +00:00
Resources Turn on the "multifinder aware" bit. This should always have been on, but was was never a problem that it was off until CarbonLib 1.1 (which requires it, for some reason). 2001-02-23 22:13:07 +00:00
Tools Waste 2.0 has many more options for the undo label. 2001-02-21 15:45:55 +00:00
Unsupported Replaced InvalRect and friends with the Carbon-compliant InvalWindowRect. 2001-01-23 14:56:31 +00:00
Wastemods Waste 1.3 extra's modified for waste 2.0 (and missing from MW's distribution of 2.0). 2001-02-15 22:56:41 +00:00
mwerks Ported the icglue module to carbon. 2001-01-29 13:27:46 +00:00
scripts - Removed debug 2001-02-17 23:39:35 +00:00
tclmods Put in an earlier include of sys/signal.h (within ifdef USE_GUSI) to forestal a multiple define. 2000-07-24 19:42:53 +00:00
HISTORY Changed release note structure: 1997-05-28 12:01:14 +00:00
ReadMe 2.1a2 distribution files. 2001-02-17 22:03:42 +00:00
ReadMe-dev Updated because developer option isn't distributed separately anymore. 2000-10-22 21:57:12 +00:00
ReadMe-src Updated for 1.5.2b1 (better late than never:-) 1999-01-21 12:50:47 +00:00
Relnotes 2.1a2 distribution files. 2001-02-17 22:03:42 +00:00
_checkversion.py Final version used for 2.0 distribution. 2000-10-22 21:54:33 +00:00
errno_unix.h Unix functionality expected by python but missing from CodeWarrior 1994-12-14 14:04:55 +00:00
fopenRF.c Think 6.0 version 1995-01-02 19:13:30 +00:00
mkapplet.py In interactive mode ask for output file 1995-02-27 16:19:07 +00:00
mwerksglue.c Unix functionality expected by python but missing from CodeWarrior 1994-12-14 14:04:55 +00:00

ReadMe

How to install Python 2.1a2 on your Macintosh
---------------------------------------------

Note that this is really an alpha: it is only lightly tested and contains a lot
of new code. Moreover, this release is Carbon only, so it will run on MacOS 8.6
or later and MacOS X. The next alpha will again run in "classic MacOS" (8.0 or
later).

I'm hoping for a fairly quick alpha cycle, with about 3 distributions in quick
succession, so please give feedback (to pythonmac-sig@python.org) as soon as
possible. You should definitely include the full version number of you MacOS
and the full version string of your MacPython.

Whether PIL, Tk and Numeric work in this release is a complete guess.

You should definitely read the Relnotes file too.

------

If this is your first encounter with Python: you definitely need the
common user documentation (common to all platforms). You can find this
(in various forms) on www.pythonlabs.com, www.python.org and
ftp.python.org. Through there, or via
http://www.cwi.nl/~jack/macpython.html you can also find the most recent
MacPython distribution.

Mac-specific documentation is included in this distribution in folder
Mac:Demo. The documentation is sparse, but it will have to serve for
now. The documentation is in HTML format, start with index.html.

Caveats
-------
This is a final candidate version, so use with caution, and please report
problems as soon as possible, to pythonmac-sig@python.org.

Aside from the general new Python 2.1 features compared to 2.0 the main
feature of this release is Carbon support.

This installer installs MacPython for Carbon only. If you have a machine
running 8.5 or earlier you should wait for the next alfa and sitck with 2.0.
If you want
68k support you will have to stay with 1.5.2.

This version of Python expects a recent version of Appearance, so it may
be that users with pre MacOS 8.5 systems have trouble running it. If
that is the case try getting CarbonLib from Apple, I am told this
includes Appearance and NavServices. You may also have to disable the
"Use navservices" preference for best results.

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 optional parts in this distribution are
- TK+PIL: Tkinter and support modules, plus Imaging, the Python image manipulation 
  package (allows you to read, write and display images and do lots of operations on them).
- img: another imaging package. Has more file format support and is faster
  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. 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.

Moving your Python installation after installing is generally not a good idea.
If you have to do this anyway you should remove your preference file, run
ConfigurePython and remove all .pyc files. (there's a script zappyc.py that does
the latter).

If you don't have enough memory: the sizes choosen are somewhat
arbitrary, and they are as high as they are so that test.autotest runs with fewer
problems. An average Python program can make do with much less memory.
Try lowering the application sizes in the finder "get info"
window, and seeing whether the resulting python is still usable.

After installing
----------------

It is probably a good idea to run the automatic tests. Start
Python and "import test.autotest". 

Three tests will fail on MacOS9, all with MemoryErrors: test_gzip, test_sha,
test_longexp and test_zlib (on MacOSX nothing should fail).
If you increase the PythonInterpreter memory
partition size they will pass. It will, however, print some messages
about optional features not supported. You should not worry about these,
they are modules that are supported by Python on other platforms. Also,
if you didn't run compileall before autotesting you may run out of
memory the first time you run the tests. test_socket may also fail if
you have no internet connection. Please also read the Relnotes file for
other minor problems with this distribution.

Using Python is most easily done from the IDE, which has a builtin editor,
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
libraries PythonCore and PythonCoreCarbon lives in the Extensions folder and the
"Python 2.1a2 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 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 ":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).

Finally there is a Mac:Contrib folder which contains some contributed
software.

Upgrading from older Python releases
------------------------------------

Python releases are independent of each other, with
separate Preferences files, shared library names, etc. The good news is
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 2.1 works as expected you can trash
anything in the system folder that has "python" in the name and not
"2.1".

The installer
-------------

The installer for this product was created using Installer VISE
from MindVision Software. For more information on Installer VISE,
contact:
MindVision Software
7201 North 7th Street
Lincoln, NE 68521-8913
Voice: 402-477-3269
Fax: 402-477-1395
Internet: mindvision@mindvision.com
http://www.mindvision.com

Just van Rossum <just@letterror.nl> created the initial version of the
installer (with Installer Vise Lite), and Jack worked from there.

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, Tony Ingraldi, Erik van Blokland, Bill Bedford, Chris
Stern, Gordon Worley, Oliver Steele, M. Papillon, Steven Majewski, David
Goodger, Chris Barker, Luc Lefebvre, Tattoo Mabonzo K., Russell Finn,
Tom Bridgman and all the other people who provided feedback, code or both!

MacPython includes waste, a TextEdit replacement which is (c) 1998 Marco Piovanelli.

A special mention is deserved by Matthias Neeracher, who has written the brilliant
unix-compatible GUSI I/O library, without which MacPython would not have sockets
or select, and to Alexandre Parenteau, who has ported this library to Carbon.

Feedback
--------

Send bug reports, suggestions, contributions and fanmail to
<jack@cwi.nl>. However, a better way to discuss MacPython is to join the
<pythonmac-sig@python.org> mailing list, which is explicitly meant for
this purpose.

Jack Jansen
Oratrix Development BV
Valeriusplein 30
Amsterdam
the Netherlands

<jack@cwi.nl>, http://www.cwi.nl/~jack