|
1 |
|
2 .. _using-on-mac: |
|
3 |
|
4 *************************** |
|
5 Using Python on a Macintosh |
|
6 *************************** |
|
7 |
|
8 :Author: Bob Savage <bobsavage@mac.com> |
|
9 |
|
10 |
|
11 Python on a Macintosh running Mac OS X is in principle very similar to Python on |
|
12 any other Unix platform, but there are a number of additional features such as |
|
13 the IDE and the Package Manager that are worth pointing out. |
|
14 |
|
15 The Mac-specific modules are documented in :ref:`mac-specific-services`. |
|
16 |
|
17 Python on Mac OS 9 or earlier can be quite different from Python on Unix or |
|
18 Windows, but is beyond the scope of this manual, as that platform is no longer |
|
19 supported, starting with Python 2.4. See http://www.cwi.nl/~jack/macpython for |
|
20 installers for the latest 2.3 release for Mac OS 9 and related documentation. |
|
21 |
|
22 |
|
23 .. _getting-osx: |
|
24 |
|
25 Getting and Installing MacPython |
|
26 ================================ |
|
27 |
|
28 Mac OS X 10.5 comes with Python 2.5.1 pre-installed by Apple. If you wish, you |
|
29 are invited to install the most recent version of Python from the Python website |
|
30 (http://www.python.org). A current "universal binary" build of Python, which |
|
31 runs natively on the Mac's new Intel and legacy PPC CPU's, is available there. |
|
32 |
|
33 What you get after installing is a number of things: |
|
34 |
|
35 * A :file:`MacPython 2.5` folder in your :file:`Applications` folder. In here |
|
36 you find IDLE, the development environment that is a standard part of official |
|
37 Python distributions; PythonLauncher, which handles double-clicking Python |
|
38 scripts from the Finder; and the "Build Applet" tool, which allows you to |
|
39 package Python scripts as standalone applications on your system. |
|
40 |
|
41 * A framework :file:`/Library/Frameworks/Python.framework`, which includes the |
|
42 Python executable and libraries. The installer adds this location to your shell |
|
43 path. To uninstall MacPython, you can simply remove these three things. A |
|
44 symlink to the Python executable is placed in /usr/local/bin/. |
|
45 |
|
46 The Apple-provided build of Python is installed in |
|
47 :file:`/System/Library/Frameworks/Python.framework` and :file:`/usr/bin/python`, |
|
48 respectively. You should never modify or delete these, as they are |
|
49 Apple-controlled and are used by Apple- or third-party software. Remember that |
|
50 if you choose to install a newer Python version from python.org, you will have |
|
51 two different but functional Python installations on your computer, so it will |
|
52 be important that your paths and usages are consistent with what you want to do. |
|
53 |
|
54 IDLE includes a help menu that allows you to access Python documentation. If you |
|
55 are completely new to Python you should start reading the tutorial introduction |
|
56 in that document. |
|
57 |
|
58 If you are familiar with Python on other Unix platforms you should read the |
|
59 section on running Python scripts from the Unix shell. |
|
60 |
|
61 |
|
62 How to run a Python script |
|
63 -------------------------- |
|
64 |
|
65 Your best way to get started with Python on Mac OS X is through the IDLE |
|
66 integrated development environment, see section :ref:`ide` and use the Help menu |
|
67 when the IDE is running. |
|
68 |
|
69 If you want to run Python scripts from the Terminal window command line or from |
|
70 the Finder you first need an editor to create your script. Mac OS X comes with a |
|
71 number of standard Unix command line editors, :program:`vim` and |
|
72 :program:`emacs` among them. If you want a more Mac-like editor, |
|
73 :program:`BBEdit` or :program:`TextWrangler` from Bare Bones Software (see |
|
74 http://www.barebones.com/products/bbedit/index.shtml) are good choices, as is |
|
75 :program:`TextMate` (see http://macromates.com/). Other editors include |
|
76 :program:`Gvim` (http://macvim.org) and :program:`Aquamacs` |
|
77 (http://aquamacs.org). |
|
78 |
|
79 To run your script from the Terminal window you must make sure that |
|
80 :file:`/usr/local/bin` is in your shell search path. |
|
81 |
|
82 To run your script from the Finder you have two options: |
|
83 |
|
84 * Drag it to :program:`PythonLauncher` |
|
85 |
|
86 * Select :program:`PythonLauncher` as the default application to open your |
|
87 script (or any .py script) through the finder Info window and double-click it. |
|
88 :program:`PythonLauncher` has various preferences to control how your script is |
|
89 launched. Option-dragging allows you to change these for one invocation, or use |
|
90 its Preferences menu to change things globally. |
|
91 |
|
92 |
|
93 .. _osx-gui-scripts: |
|
94 |
|
95 Running scripts with a GUI |
|
96 -------------------------- |
|
97 |
|
98 With older versions of Python, there is one Mac OS X quirk that you need to be |
|
99 aware of: programs that talk to the Aqua window manager (in other words, |
|
100 anything that has a GUI) need to be run in a special way. Use :program:`pythonw` |
|
101 instead of :program:`python` to start such scripts. |
|
102 |
|
103 With Python 2.5, you can use either :program:`python` or :program:`pythonw`. |
|
104 |
|
105 |
|
106 Configuration |
|
107 ------------- |
|
108 |
|
109 Python on OS X honors all standard Unix environment variables such as |
|
110 :envvar:`PYTHONPATH`, but setting these variables for programs started from the |
|
111 Finder is non-standard as the Finder does not read your :file:`.profile` or |
|
112 :file:`.cshrc` at startup. You need to create a file :file:`~ |
|
113 /.MacOSX/environment.plist`. See Apple's Technical Document QA1067 for details. |
|
114 |
|
115 For more information on installation Python packages in MacPython, see section |
|
116 :ref:`mac-package-manager`. |
|
117 |
|
118 |
|
119 .. _ide: |
|
120 |
|
121 The IDE |
|
122 ======= |
|
123 |
|
124 MacPython ships with the standard IDLE development environment. A good |
|
125 introduction to using IDLE can be found at http://hkn.eecs.berkeley.edu/ |
|
126 dyoo/python/idle_intro/index.html. |
|
127 |
|
128 |
|
129 .. _mac-package-manager: |
|
130 |
|
131 Installing Additional Python Packages |
|
132 ===================================== |
|
133 |
|
134 There are several methods to install additional Python packages: |
|
135 |
|
136 * http://pythonmac.org/packages/ contains selected compiled packages for Python |
|
137 2.5, 2.4, and 2.3. |
|
138 |
|
139 * Packages can be installed via the standard Python distutils mode (``python |
|
140 setup.py install``). |
|
141 |
|
142 * Many packages can also be installed via the :program:`setuptools` extension. |
|
143 |
|
144 |
|
145 GUI Programming on the Mac |
|
146 ========================== |
|
147 |
|
148 There are several options for building GUI applications on the Mac with Python. |
|
149 |
|
150 *PyObjC* is a Python binding to Apple's Objective-C/Cocoa framework, which is |
|
151 the foundation of most modern Mac development. Information on PyObjC is |
|
152 available from http://pyobjc.sourceforge.net. |
|
153 |
|
154 The standard Python GUI toolkit is :mod:`Tkinter`, based on the cross-platform |
|
155 Tk toolkit (http://www.tcl.tk). An Aqua-native version of Tk is bundled with OS |
|
156 X by Apple, and the latest version can be downloaded and installed from |
|
157 http://www.activestate.com; it can also be built from source. |
|
158 |
|
159 *wxPython* is another popular cross-platform GUI toolkit that runs natively on |
|
160 Mac OS X. Packages and documentation are available from http://www.wxpython.org. |
|
161 |
|
162 *PyQt* is another popular cross-platform GUI toolkit that runs natively on Mac |
|
163 OS X. More information can be found at |
|
164 http://www.riverbankcomputing.co.uk/pyqt/. |
|
165 |
|
166 |
|
167 Distributing Python Applications on the Mac |
|
168 =========================================== |
|
169 |
|
170 The "Build Applet" tool that is placed in the MacPython 2.5 folder is fine for |
|
171 packaging small Python scripts on your own machine to run as a standard Mac |
|
172 application. This tool, however, is not robust enough to distribute Python |
|
173 applications to other users. |
|
174 |
|
175 The standard tool for deploying standalone Python applications on the Mac is |
|
176 :program:`py2app`. More information on installing and using py2app can be found |
|
177 at http://undefined.org/python/#py2app. |
|
178 |
|
179 |
|
180 Application Scripting |
|
181 ===================== |
|
182 |
|
183 Python can also be used to script other Mac applications via Apple's Open |
|
184 Scripting Architecture (OSA); see http://appscript.sourceforge.net. Appscript is |
|
185 a high-level, user-friendly Apple event bridge that allows you to control |
|
186 scriptable Mac OS X applications using ordinary Python scripts. Appscript makes |
|
187 Python a serious alternative to Apple's own *AppleScript* language for |
|
188 automating your Mac. A related package, *PyOSA*, is an OSA language component |
|
189 for the Python scripting language, allowing Python code to be executed by any |
|
190 OSA-enabled application (Script Editor, Mail, iTunes, etc.). PyOSA makes Python |
|
191 a full peer to AppleScript. |
|
192 |
|
193 |
|
194 Other Resources |
|
195 =============== |
|
196 |
|
197 The MacPython mailing list is an excellent support resource for Python users and |
|
198 developers on the Mac: |
|
199 |
|
200 http://www.python.org/community/sigs/current/pythonmac-sig/ |
|
201 |
|
202 Another useful resource is the MacPython wiki: |
|
203 |
|
204 http://wiki.python.org/moin/MacPython |
|
205 |