| How to install Python 2.2b1 on your Macintosh | 
 | --------------------------------------------- | 
 |  | 
 | This is a MacPython that can run on classic MacOS (from 8.1 | 
 | onwards) and natively on MacOSX. The installer tries to work out whether you can | 
 | use the Carbon version or not. | 
 |  | 
 | You should definitely read the Relnotes file too, and the section below about | 
 | toolbox module reorganization. You should also read :Misc:NEWS, which lists | 
 | the general (non-mac-dependent) new features of this Python release. | 
 |  | 
 | A special note about the active installer: do not background it, it may hang | 
 | your machine. This is a general problem with Vise active installers, MindVision | 
 | are working on it. | 
 |  | 
 | ------ | 
 |  | 
 | 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. | 
 |  | 
 | This installer installs MacPython for classic PPC MacOS, MacPython for Carbon | 
 | (OS X, OS 9 or OS8 with CarbonLib installed) or both, depending on your | 
 | configuration. By selecting custom install you can bypass these tests and | 
 | install what you want. | 
 |  | 
 | If you want 68k support you will have to stay with MacPython 1.5.2. | 
 |  | 
 | Toolbox module reorganization and more | 
 | -------------------------------------- | 
 |  | 
 | You can safely skip this section if this is your first encounter with MacPython. | 
 |  | 
 | I am working on a new organization of the mac-specific modules, and in | 
 | general bringing the MacPython folder structure more in line with | 
 | unix-Python. This is not only a good idea, it will also immensely | 
 | facilitate moving MacPython functionality to an OSX Python that is based | 
 | on Mach-O and the unix-Python distribution. But don't worry: MacPython | 
 | is definitely not dead yet, and the hope is that the transition will be | 
 | as seamless as possible. | 
 |  | 
 | First a change that should not cause too much concern: :Mac:Plugins has | 
 | gone, and most of the dynamically loaded modules have moved to | 
 | :Lib:lib-dynload. | 
 |  | 
 | Second, and more important: the toolbox modules, such as Res and | 
 | Resource, have moved to a Carbon package. So, in stead of "import Res" | 
 | you should now say "from Carbon import Res" and in stead of "from Res | 
 | import *" you should use "from Carbon.Res import *". For the lifetime of | 
 | MacPython 2.2 there is a folder :Mac:Lib:lib-compat on sys.path that | 
 | contains modules with the old names which imports the new names after | 
 | issuing a warning. | 
 |  | 
 | Note that although the package is called Carbon the modules work fine under | 
 | classic PPC, and they are normal classic modules. Also note that some | 
 | modules you may think of as toolbox modules (such as Waste) really are not, | 
 | and they are not in the Carbon package. | 
 |    | 
 | Another change related to the OSX growth path is that there is a new module | 
 | macresource that you can use to easily open a resource file accompanying your | 
 | script. Use "macresource.need("DLOG", MY_DIALOG_ID, "name.rsrc") and if the | 
 | given resource is not available (it _is_ available if your script has been | 
 | turned into an applet) the given resource file will be opened. This method will | 
 | eventually also contain the magic needed to open the resource file on | 
 | OSX MachO Python. | 
 |  | 
 | Another feature to help with the OSX transition is that if you open a textfile | 
 | for reading MacPython will now accept either unix linefeeds (LF, '\n') or | 
 | Macintosh linefeeds (CR, '\r') and present both of them as '\n'. This is done on | 
 | a low level, so it works for files opened by scripts as well as for your scripts | 
 | and modules itself. This can be turned off with a preference/startup option. | 
 |  | 
 | But: | 
 | - this works only for input, and there's no way to find out what the original | 
 |   linefeed convention of the file was. | 
 | - Windows \r\n linefeeds are not supported and get turned into \n\n. | 
 |  | 
 | What to install | 
 | --------------- | 
 |  | 
 | 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). | 
 |   For Carbon MacPython you only get PIL: there is no Tcl/Tk for Carbon yet. | 
 |   This is the reason Classic MacPython is also installed on MacOSX: it allows you | 
 |   to run Tkinter applications, albeit in the Classic box. | 
 | - 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. | 
 |   Numeric has moved from Extensions to :Lib:site-python, by the way, see the release | 
 |   notes. | 
 | - 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 appropriate | 
 | ConfigurePython applet, to finish configuration of your Python. If you run MacOS9 or later | 
 | (or 8 with CarbonLib installed) you can switch back and forth between the classic and | 
 | Carbon versions of Python by running either ConfigurePythonClassic or ConfigurePythonCarbon. | 
 |  | 
 | 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.regrtest ; test.regrtest.main()".  | 
 |  | 
 | test_time will fail because MacPython accepts bogus values for mktime(), this | 
 | will be fixed later (it is not a very serious problem). | 
 |  | 
 | test_descrtut will fail because of a problem with the test itself. | 
 |  | 
 | Three tests will fail on MacOS9 with MemoryErrors: | 
 | test_longexp, test_sha and test_zlib (on MacOSX these should pass). | 
 |  | 
 | If you increase the PythonInterpreter memory | 
 | partition size they will pass (but for longexp you have to increase it by an | 
 | incredible amount, 400MB is rumoured). 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.2b1 Preferences" file in the Python subfolder in the | 
 | Preferences folder. All the rest of Python lives in the folder you | 
 | installed in. | 
 |  | 
 | On OSX the libraries are installed in /Library/CFMSupport. There is a nasty bug | 
 | in OSX that is triggered by Python: if any orphaned aliases are left in | 
 | /Library/CFMSupport your machine will start to behave very badly. 2.1 | 
 | beta installers triggered this problem if you simply threw away your Python folder, | 
 | so if you installed a 2.1beta you should clean out the aliases in /Library/CFMSupport | 
 | too. The final 2.1 and 2.1.1 installers always copied the shared libraries on OSX, so it does | 
 | not have the problem anymore. | 
 |  | 
 | 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.2b1 works as expected you can trash | 
 | anything in the system folder that has "python" in the name and not | 
 | "2.2b1". | 
 |  | 
 | The ConfigurePython... applets will try to detect incompatible preferences | 
 | files and offer to remove them. This means that re-running ConfigurePython after | 
 | a second install of the same MacPython version (or after moving the Python folder) | 
 | should fix things up correctly. | 
 |  | 
 | 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, Russel Owen, Pascal Oberndoerfer, Dean Draayer, | 
 | Alexandre Parenteau, | 
 | 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 |