| <HTML> |
| <HEAD> |
| <TITLE>Embedding Python on the Mac</TITLE> |
| </HEAD> |
| <BODY> |
| <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. 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 release if you want to embed |
| Python in other applications. <p> |
| |
| Embedding Python on the mac is pretty similar to embedding it on other |
| platforms, but a few points need mentioning: |
| |
| <UL> |
| <LI> You call <CODE>PyMac_Initialize()</CODE> in stead of |
| <CODE>Py_Initialize()</CODE>. The prototype is in <CODE>macglue.h</CODE>. |
| This call initializes the toolbox, GUSI (if needed), sets up the correct |
| resource files and calls Py_Initialize. |
| |
| <LI> You have to be consequent in your use of GUSI. If the library uses |
| it so should your program and vice versa. |
| |
| <LI> The console-behaviour (close-on-exit, etc) is controlled by Python, |
| but you are of course free to change that after calling PyMac_Initialize(). |
| </UL> |
| |
| The Python environment is started with a dummy argc and argv, and initial |
| startup options are obtained through the usual means, except that the |
| user pression the option-key will not result in an interactive dialog. |
| You can, however, set startup options on your program in the same way as you |
| do for applets, by dragging your application to <code>EditPythonPrefs</code>. <p> |
| |
| The most logical way to embed Python is to link it against the shared |
| library <code>PythonCore</code>. An example project and source can be |
| found in the <a href="embed">embed</a> folder. <p> |
| |
| <b>Note</b>: you may think that you do not have the project file |
| <code>PythonCore</code> but actually you do: the standard installation |
| process deposits it in the <code>Extensions</code> folder in the system |
| folder under the name <code>PythonCore <i>version</i></code>. Add that file |
| to the project replacing <code>PythonCore</code>. <p> |
| </BODY> |
| </HTML> |