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