MACOSX
* Remove junk documentation resources from the Python.app inside the framework (This is a left-over from the ancient Python IDE, which was removed before 2.5) * Ensure that the documentation is installed in a location where IDLE will see it
|
@ -614,10 +614,9 @@ def buildPythonDocs():
|
||||||
runCommand('make update')
|
runCommand('make update')
|
||||||
runCommand('make html')
|
runCommand('make html')
|
||||||
os.chdir(curDir)
|
os.chdir(curDir)
|
||||||
if not os.path.exists(docdir):
|
if os.path.exists(docdir):
|
||||||
os.mkdir(docdir)
|
os.rmdir(docdir)
|
||||||
os.rename(os.path.join(buildDir, 'build', 'html'),
|
os.rename(os.path.join(buildDir, 'build', 'html'), docdir)
|
||||||
os.path.join(docdir, 'python-docs-html'))
|
|
||||||
|
|
||||||
|
|
||||||
def buildPython():
|
def buildPython():
|
||||||
|
@ -663,7 +662,7 @@ def buildPython():
|
||||||
runCommand("make")
|
runCommand("make")
|
||||||
|
|
||||||
print "Running make frameworkinstall"
|
print "Running make frameworkinstall"
|
||||||
runCommand("make frameworkinstall DESTDIR=%s"%(
|
runCommand("make install DESTDIR=%s"%(
|
||||||
shellQuote(rootDir)))
|
shellQuote(rootDir)))
|
||||||
|
|
||||||
print "Running make frameworkinstallextras"
|
print "Running make frameworkinstallextras"
|
||||||
|
|
|
@ -38,12 +38,7 @@ STRIPFLAG=-s
|
||||||
CPMAC=/Developer/Tools/CpMac
|
CPMAC=/Developer/Tools/CpMac
|
||||||
|
|
||||||
APPTEMPLATE=$(srcdir)/Resources/app
|
APPTEMPLATE=$(srcdir)/Resources/app
|
||||||
APPSUBDIRS=MacOS Resources Resources/English.lproj \
|
APPSUBDIRS=MacOS Resources
|
||||||
Resources/English.lproj/Documentation \
|
|
||||||
Resources/English.lproj/Documentation/doc \
|
|
||||||
Resources/English.lproj/Documentation/ide
|
|
||||||
DOCDIR=$(srcdir)/Resources/app/Resources/English.lproj/Documentation
|
|
||||||
DOCINDEX=$(DOCDIR)/"Documentation idx"
|
|
||||||
compileall=$(srcdir)/../Lib/compileall.py
|
compileall=$(srcdir)/../Lib/compileall.py
|
||||||
|
|
||||||
installapps: install_Python install_PythonLauncher install_IDLE \
|
installapps: install_Python install_PythonLauncher install_IDLE \
|
||||||
|
@ -157,9 +152,6 @@ install_PythonLauncher:
|
||||||
cd PythonLauncher && make install DESTDIR=$(DESTDIR)
|
cd PythonLauncher && make install DESTDIR=$(DESTDIR)
|
||||||
|
|
||||||
install_Python:
|
install_Python:
|
||||||
@if test ! -f $(DOCINDEX); then \
|
|
||||||
echo WARNING: you should run Apple Help Indexing Tool on $(DOCDIR); \
|
|
||||||
fi
|
|
||||||
@for i in "$(PYTHONAPPSDIR)" "$(APPINSTALLDIR)" "$(APPINSTALLDIR)/Contents"; do \
|
@for i in "$(PYTHONAPPSDIR)" "$(APPINSTALLDIR)" "$(APPINSTALLDIR)/Contents"; do \
|
||||||
if test ! -d "$(DESTDIR)$$i"; then \
|
if test ! -d "$(DESTDIR)$$i"; then \
|
||||||
echo "Creating directory $(DESTDIR)$$i"; \
|
echo "Creating directory $(DESTDIR)$$i"; \
|
||||||
|
|
Before Width: | Height: | Size: 5.9 KiB |
|
@ -1,69 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
|
||||||
<title>What is MacPython?</title>
|
|
||||||
<meta name="generator" content="BBEdit 6.5.3">
|
|
||||||
<link rel="SHORTCUT ICON" href="pythonsmall.gif">
|
|
||||||
<META NAME="AppleIcon" CONTENT="pythonsmall.gif">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<img src="python.gif" width="128" height="128" align="top" alt="">
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<h1>MacPython Community</h1>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<h2>Web Sites</h2>
|
|
||||||
|
|
||||||
<p>The MacPython homepage, <a href="http://www.cwi.nl/~jack/macpython.html">
|
|
||||||
www.cwi.nl/~jack/macpython.html</a>
|
|
||||||
is where you can find installers, documents, links to useful packages and more.
|
|
||||||
And, of course,
|
|
||||||
<a href="http://www.python.org">www.python.org</a> has a much larger collection
|
|
||||||
of material on Python that is not Mac-specific.</p>
|
|
||||||
|
|
||||||
<h2>News groups and Mailing lists</h2>
|
|
||||||
|
|
||||||
<p>There are a lot of mailing lists on Python. Some of the more interesting
|
|
||||||
ones are:</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="mailto:python-help@python.org">python-help@python.org</a> where
|
|
||||||
you can send questions for individual support. Please check the websites mentioned
|
|
||||||
above first, though!</li>
|
|
||||||
<li>The <a href="news:comp.lang.python">comp.lang.python</a> newsgroup for general
|
|
||||||
discussion. Also available as a
|
|
||||||
<a href="http://www.python.org/mailman/listinfo/python-list">mailing list</a>.</li>
|
|
||||||
<li>The <a href="news:comp.lang.python.announce">comp.lang.python.announce</a>
|
|
||||||
newsgroup for announcements. Low-volume and moderated. Also available as a
|
|
||||||
<a href="http://www.python.org/mailman/listinfo/python-announce-list">mailing list</a>.</li>
|
|
||||||
<li>Last but not least, the <a href="http://www.python.org/sigs/pythonmac-sig/">pythonmac-sig</a>
|
|
||||||
mailing list is specifically for MacPython. Discussions on the implementation of new
|
|
||||||
features, but beginners questions are welcome too.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>In addition there are Python <a href="http://www.python.org/sigs/">Special Interest Group</a>
|
|
||||||
mailing lists on a wide variety of topics such as image processing, numerical algorithms
|
|
||||||
and more.</p>
|
|
||||||
|
|
||||||
<h2>More</h2>
|
|
||||||
|
|
||||||
<p>An index of conferences, Wiki's, bookshops and more can be found at the
|
|
||||||
<a href="http://www.python.org/psa/">Community</a> section of the Python website.</p>
|
|
||||||
|
|
||||||
<p>If you find a bug you are kindly requested to report it, preferrably through the
|
|
||||||
automatic bug tracker at <a href="http://www.python.org">www.python.org</a></p>
|
|
||||||
|
|
||||||
<p>If you want to become an active developer you are very welcome! Join the
|
|
||||||
pythonmac-sig mailing list mentioned above, and read the
|
|
||||||
<a href="http://www.python.org/dev/">Developer</a> section on the Python website.</p>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,21 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
|
||||||
<title>Python Language Documentation</title>
|
|
||||||
<meta name="generator" content="BBEdit 6.5.3">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>Python Language and runtime documentation</h1>
|
|
||||||
|
|
||||||
<p>This volume of documentation is rather big (17 Megabytes) and contains
|
|
||||||
a tutorial, full description of the Python library (all the modules
|
|
||||||
and packages included), formal description of the language and more.</p>
|
|
||||||
|
|
||||||
<p>You can <a href="http://www.python.org/doc">view it online</a>, where
|
|
||||||
you can also download PDFs for printing, or you can download and install it
|
|
||||||
through the <a href="../packman.html">Package Manager</a> for viewing and
|
|
||||||
searching via Apple Help Viewer.</p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,36 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
|
||||||
<title>Python and the Finder</title>
|
|
||||||
<meta name="generator" content="BBEdit 6.5.3">
|
|
||||||
<link rel="SHORTCUT ICON" href="pythonsmall.gif">
|
|
||||||
<META NAME="AppleIcon" CONTENT="pythonsmall.gif">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>Running Python scripts from the Finder</h1>
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<img src="python.gif" width="128" height="128" align="top" alt="">
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>The application PythonLauncher will start a Python interpreter
|
|
||||||
when you drop a Python source file onto it, any file with a <tt>.py</tt>
|
|
||||||
or <tt>.pyw</tt> extension. If you set PythonLauncher as the default
|
|
||||||
application to open a file
|
|
||||||
(<a href="help:search=Changing%20the%20application%20that%20opens%20a%20file bookID=Mac%20Help">
|
|
||||||
tell me more</a>) this also works when you double click a Python script.</p>
|
|
||||||
|
|
||||||
<p>PythonLauncher has preferences per filetype for selecting
|
|
||||||
the interpreter to use, and how to launch it: in a Terminal window
|
|
||||||
or not, etc. Holding the Option key while launching your script will
|
|
||||||
bring up a window that allows changing these settings for a single
|
|
||||||
run. </p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<hr>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,54 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
|
||||||
<title>Creating a User Interface with MacPython</title>
|
|
||||||
<meta name="generator" content="BBEdit 6.5.3">
|
|
||||||
<link rel="SHORTCUT ICON" href="pythonsmall.gif">
|
|
||||||
<META NAME="AppleIcon" CONTENT="pythonsmall.gif">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>Creating a User Interface with MacPython</h1>
|
|
||||||
|
|
||||||
<p>There are a number of packages that allow creation of a user interface
|
|
||||||
for your Python code, each of which has its own merits:</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li> The Carbon package gives low-level access to the old Macintosh toolbox
|
|
||||||
calls for windows, events, dialogs and more. The <tt>FrameWork</tt> module
|
|
||||||
wraps these in a minimal framework. For documentation see the Macintosh
|
|
||||||
Library section of the <a href="doc/index.html">Python Language and runtime
|
|
||||||
documentation</a> and the Human Interface Toolbox section of
|
|
||||||
<a href="help:openbook=Carbon">Apple's Carbon Documentation</a>.
|
|
||||||
This solution is compatible with MacPython-OS9.</li>
|
|
||||||
<li> The <tt>W</tt> framework is built on top of this, and easier to use.
|
|
||||||
The MacPython IDE uses W. Some documentation is available on
|
|
||||||
<a href="http://www.nevada.edu/~cwebster/Python/index.html">Corran Webster's website</a>.
|
|
||||||
Compatible with MacPython-OS9.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>For new work, however, one of the following packages may be better suited.
|
|
||||||
They may be available out of the box in this distribution, otherwise you
|
|
||||||
can install them through the <a href="packman.html">Package Manager</a>:</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li> <a href="http://pyobjc.sourceforge.net/">PyObjC</a> allows complete access to Cocoa.
|
|
||||||
In technical terms it is a
|
|
||||||
bidirectional bridge between Python and Objectve-C, similar to Apple's Java
|
|
||||||
bridge. Probably the best choice for Mac OS X-only applications, but at the
|
|
||||||
time of this writing PyObjC is still in beta.</li>
|
|
||||||
|
|
||||||
<li> <a href="http://wxpython.sourceforge.net/">wxPython</a> gives Python programs
|
|
||||||
access to the wxWindows GUI toolkit. Many people consider this
|
|
||||||
the best open source cross-platform GUI solution available today.</li>
|
|
||||||
|
|
||||||
<li> Tkinter is the oldest cross-platform GUI toolkit for Python, bridging Python
|
|
||||||
to Tcl/Tk. If you install AquaTk it creates a native user interface on Mac OS X.
|
|
||||||
Documented in the Library section, Tkinter subsection of the
|
|
||||||
<a href="doc/index.html">Python Language and runtime documentation</a>. Tkinter
|
|
||||||
is not available for MacPython-OS9.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 15 KiB |
|
@ -1,222 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<title>One Day of MacPython IDE Toying</title>
|
|
||||||
<link rel="SHORTCUT ICON" href="../pythonsmall.gif">
|
|
||||||
<META NAME="AppleIcon" CONTENT="../pythonsmall.gif">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="#ffffff">
|
|
||||||
<h1>One Day of MacPython IDE Toying</h1>
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<img src="IDE.gif" alt="">
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>This document gives a very basic introduction to the
|
|
||||||
MacPython <b>I</b>ntegrated <b>D</b>evelopment <b>E</b>nvironment (IDE) on Mac OS. It was
|
|
||||||
written specifically for MacPython 2.3 on Mac OS X, but most of
|
|
||||||
it is applicable to MacPython-OS9 too. It is based on
|
|
||||||
<a href="http://www-hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/">"One
|
|
||||||
Day of IDLE Toying"</a> by Danny Yoo, which you should read if
|
|
||||||
you want to use the cross-platform IDLE Python development
|
|
||||||
environment.</p>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<hr>
|
|
||||||
<br style="page-break-after: always">
|
|
||||||
|
|
||||||
<p>Ok, let's assume that we've already installed Python. (If not, we can
|
|
||||||
visit: <a href="http://www.cwi.nl/~jack/macpython.html">http://www.cwi.nl/~jack/macpython.html</a>
|
|
||||||
or <a href="http://python.org">http://python.org</a>
|
|
||||||
and download the most recent Python interpreter. Get the Mac OSX binary
|
|
||||||
installer.) The first thing we'd like to do is actually start running it!
|
|
||||||
We can do this by opening up the IDE, which should be in Applications
|
|
||||||
under the newly-created MacPython program folder: </p><p><img
|
|
||||||
src="loading_ide.gif" border=1 alt="image of IDE icon"></p>
|
|
||||||
|
|
||||||
<hr><br style="page-break-after: always">
|
|
||||||
|
|
||||||
<p>The IDE starts up and shows an interactive window: </p>
|
|
||||||
<p><img src="new_ide_window.gif" alt="image of new window"></p>
|
|
||||||
|
|
||||||
<p>If the window does not show up (because you have run the IDE before
|
|
||||||
and closed it: it remembers that between runs) open it with the <tt>Windows->Python Interactive</tt>
|
|
||||||
menu entry. </p>
|
|
||||||
|
|
||||||
<p>This is the interactive window to the IDE, it allows us to enter
|
|
||||||
commands directly into Python, and as soon as we enter a command,
|
|
||||||
Python will execute it and spit its result back to us. We'll be
|
|
||||||
using this interactive window a lot when we're exploring Python: it's
|
|
||||||
very nice because we get back our results immediately. If it helps,
|
|
||||||
we can think of it as a very powerful calculator.</p>
|
|
||||||
|
|
||||||
<hr><br style="page-break-after: always">
|
|
||||||
|
|
||||||
<p>Let's try something now! As per tradition, let's get Python to say
|
|
||||||
the immortal words, "Hello World". <img src="hello_world.gif"
|
|
||||||
border=1 alt="image of hello world program"></p> <p>Those '<tt>>>></tt>' signs act as a prompt
|
|
||||||
for us: Python is ready to read in a new command by giving us that
|
|
||||||
visual cue. Also, we notice that as we enter commands, Python will
|
|
||||||
give us its output immediately.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<hr><br style="page-break-after: always">
|
|
||||||
|
|
||||||
<p>Ok, this seems pretty simple enough. Let's try a few more
|
|
||||||
commands. If we look below:</p>
|
|
||||||
|
|
||||||
<p><img src="simple_commands.gif" border=1 alt="image of command window"></p>
|
|
||||||
|
|
||||||
<p>we'll see the result of running a few more commands. Don't worry
|
|
||||||
too much about knowing the exact rules for making programs yet: the
|
|
||||||
idea is that we can experiment with Python by typing in commands. If
|
|
||||||
things don't work, then we can correct the mistake, and try it
|
|
||||||
again.</p>
|
|
||||||
|
|
||||||
<p>If you got to this point, you now know enough to start playing
|
|
||||||
around with Python! Crack open one of the tutorials from the <a
|
|
||||||
href="http://python.org/doc/Newbies.html">Python For Beginners</a> web
|
|
||||||
page, and start exploring with the interpreter. No time limit here. *grin*</p>
|
|
||||||
|
|
||||||
<hr><br style="page-break-after: always">
|
|
||||||
|
|
||||||
<p>Now that we've paddled long enough, we might be asking: ok, this is
|
|
||||||
neat, but if we close down Python and start it up again, how do we get
|
|
||||||
the computer to remember what we typed?</p>
|
|
||||||
|
|
||||||
<p>The solution is a little subtle: we can't directly save what's in
|
|
||||||
the interpreter window, because it will include both our commands and
|
|
||||||
the system's responses. What we'd like is to make a prepared file,
|
|
||||||
with just our own commands, and to be able to save that file as a
|
|
||||||
document. When we're in the mood, we can later open that file and
|
|
||||||
"run" Python over it, saving us the time of retyping the whole
|
|
||||||
thing over again.</p>
|
|
||||||
|
|
||||||
<p>Let's try this. First, let's start with a clean slate by opening
|
|
||||||
up a new window.</p>
|
|
||||||
|
|
||||||
<p><img src="making_new_window.gif" border=1 alt="image of making new window"></p>
|
|
||||||
|
|
||||||
<p>Here's the result of that menu command:</p>
|
|
||||||
|
|
||||||
<p><img src="new_window_made.gif" border=1 alt="image of new window"></p>
|
|
||||||
|
|
||||||
<p>We notice that there's nothing in this new window. What this means
|
|
||||||
is that this file is purely for our commands: Python won't interject
|
|
||||||
with its own responses as we enter the program, that is, not until we
|
|
||||||
tell it to. This is called an edit window, and it is very similar
|
|
||||||
to edit windows in other editors such as TextEdit or BBEdit.</p>
|
|
||||||
|
|
||||||
<hr><br style="page-break-after: always">
|
|
||||||
|
|
||||||
<p>What we wanted to do before was save some of the stuff we had
|
|
||||||
tried out on the interpreter window. Let's do that by typing (or
|
|
||||||
copy/pasting) those commands into our edit window.</p>
|
|
||||||
<p><img src="entering_in_new_window.gif" border=1 alt="image of entering commands"></p>
|
|
||||||
|
|
||||||
<p>Ok, we're done with copying and pasting.
|
|
||||||
One big thing to notice
|
|
||||||
is that we're careful to get rid of the "<tt>>>></tt>"
|
|
||||||
prompts because they're not really part of our program. The
|
|
||||||
interpreter uses them just to tell us that we're in the interpreter,
|
|
||||||
but now that we're editing in a separate file, we can remove the
|
|
||||||
artifacts that the interpreter introduces.
|
|
||||||
I have added
|
|
||||||
an extra empty print statement so our output ends with a newline.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<hr><br style="page-break-after: always">
|
|
||||||
|
|
||||||
<p>Let's save the file now. The Save command is located under the <tt>File</tt> menu:</p>
|
|
||||||
<p><img src="saving_edited_file.gif" border=1 alt="image of saving file"></p>
|
|
||||||
|
|
||||||
|
|
||||||
<hr><br style="page-break-after: always">
|
|
||||||
|
|
||||||
<p>Now that we've saved the program, how do we run the program? Use the
|
|
||||||
Run All button at the top of the editing window, or the equivalent
|
|
||||||
menu command <tt>Python->Run Window</tt>. The output will appear in a new
|
|
||||||
window called Output Window. </p>
|
|
||||||
|
|
||||||
<p>By the way, one thing to notice is that I made a typo: I didn't
|
|
||||||
quite copy exactly what I had entered in the interpreter window
|
|
||||||
before. Does this affect things?</p>
|
|
||||||
|
|
||||||
<p><img src="syntax_error.gif" border=1 alt="image of syntax error"></p>
|
|
||||||
|
|
||||||
<p>Ooops. Here is an example of what Python calls a "syntax error".
|
|
||||||
Python sees that we made a typo, and warns us to take a much closer
|
|
||||||
look at our program. The designers of Python feel that having the
|
|
||||||
system point out the error is better than trying to guess at what the
|
|
||||||
programmer meant. Press the Edit button and you will be brought to
|
|
||||||
the trouble spot. </p>
|
|
||||||
|
|
||||||
<p>Python is often perceptive enough to direct us toward the problem,
|
|
||||||
and in this case, it's telling us that we forgot to put something at
|
|
||||||
the end of this line. In this case, we need to add a
|
|
||||||
quotation mark at the end. Let's add that in now.</p>
|
|
||||||
|
|
||||||
<p>Other errors, which usually occur later, when your program has
|
|
||||||
already done something, result in a different dialog that allows you
|
|
||||||
to look at variables and such in addition to showing you where
|
|
||||||
the error occurred. </p>
|
|
||||||
|
|
||||||
<hr><br style="page-break-after: always">
|
|
||||||
|
|
||||||
<p>Ok, let's say that we fixed that silly typo. Let's try to run the
|
|
||||||
program again. This gives us a new window, the Output window, showing
|
|
||||||
the output of our program:</p>
|
|
||||||
<p><img src="output_window.gif" border=1 alt="image of output window"></p>
|
|
||||||
|
|
||||||
<hr><br style="page-break-after: always">
|
|
||||||
|
|
||||||
<p>As we play with Python, we'll find ourselves "switching modes"
|
|
||||||
between the Interpreter window and the edit window. However,
|
|
||||||
if we try anything more complicated than two or three lines it
|
|
||||||
is often a good idea to work in an edit window. Align
|
|
||||||
your edit and output window such that you can see them at the same time.</p>
|
|
||||||
|
|
||||||
<p>This is pretty much all we need to know about the MacPython IDE to actually do
|
|
||||||
interesting things. There is a lot more to the IDE, here is a quick
|
|
||||||
breakdown of things to see and explore:</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>All sorts of edit commands such as find and replace can be
|
|
||||||
used in the editor windows. See the <tt>Edit</tt> menu.</li>
|
|
||||||
|
|
||||||
<li>The bottom of the edit window has the scrollbar, but at the
|
|
||||||
left are two navigation devices: a line number box that you can type
|
|
||||||
numbers into to quickly go to a specific place, and a popup menu
|
|
||||||
that lists all classes, functions and methods in your file.</li>
|
|
||||||
|
|
||||||
<li>Above the vertical scrollbar you find another popup menu, this
|
|
||||||
influences how the Run command works. You should try the debugger
|
|
||||||
some time! If you do, and you wonder what the new small column on
|
|
||||||
the left of your script is: you can click in it to make Python stop
|
|
||||||
when it reaches this line so you can inspect things. The profiler
|
|
||||||
is also nifty: it shows you where your program is spending its time.</li>
|
|
||||||
|
|
||||||
<li>The module browser (<tt>Python->Module Browser</tt>) shows you all Python
|
|
||||||
modules currently loaded. You can look at the contents of the module with
|
|
||||||
Browse... and (for modules written in Python) at the source with Source...</li>
|
|
||||||
|
|
||||||
<li>The Package Manager (under the <tt>File</tt> menu, also available as a
|
|
||||||
separate application) allows you to easily install Python extension packages
|
|
||||||
for all sorts of things: scientific computation, image processing,
|
|
||||||
building user interfaces and more. </li>
|
|
||||||
|
|
||||||
<li>The <tt>Help</tt> menu gives you quick access to both the Python documentation,
|
|
||||||
if you have installed it with the Package Manager, and the Apple Developer
|
|
||||||
documentation. </li>
|
|
||||||
|
|
||||||
<li>The <tt>File->Save as Applet</tt> menu command saves your script as a MacOSX
|
|
||||||
application. This allows you to create a script that you can drop files on,
|
|
||||||
and much more. The IDE itself is such an applet, completely written in Python. </li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Before Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 12 KiB |
|
@ -1,51 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
|
||||||
<title>MacPython Help</title>
|
|
||||||
<meta name="generator" content="BBEdit 6.5.3">
|
|
||||||
<link rel="SHORTCUT ICON" href="pythonsmall.gif">
|
|
||||||
<META NAME="AppleIcon" CONTENT="pythonsmall.gif">
|
|
||||||
<META NAME="AppleTitle" CONTENT="MacPython Help">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h1>MacPython Help</h1>
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<img src="python.gif" width="128" height="128" align="top" alt="">
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>Choose a topic, or enter keywords into the search field:</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="intro.html">What is MacPython?</a>
|
|
||||||
</li>
|
|
||||||
<li><a href="ide/index.html">MacPython
|
|
||||||
Integrated Development Environment Introduction</a>
|
|
||||||
</li>
|
|
||||||
<li><a href="doc/index.html">Python Language and runtime documentation</a>
|
|
||||||
</li>
|
|
||||||
<li><a href="finder.html">Running Python scripts from the Finder</a>
|
|
||||||
</li>
|
|
||||||
<li><a href="shell.html">Running Python scripts from the Unix Shell</a>
|
|
||||||
</li>
|
|
||||||
<li><a href="gui.html">Creating a User Interface with MacPython</a>
|
|
||||||
</li>
|
|
||||||
<li><a href="scripting.html">Controlling other Applications from MacPython</a>
|
|
||||||
</li>
|
|
||||||
<li><a href="packman.html">Installing additional functionality with the
|
|
||||||
Package Manager</a>
|
|
||||||
</li>
|
|
||||||
<li><a href="community.html">MacPython community</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,76 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
|
||||||
<title>What is MacPython?</title>
|
|
||||||
<meta name="generator" content="BBEdit 6.5.3">
|
|
||||||
<link rel="SHORTCUT ICON" href="pythonsmall.gif">
|
|
||||||
<META NAME="AppleIcon" CONTENT="pythonsmall.gif">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>What is MacPython?</h1>
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<img src="python.gif" width="128" height="128" align="top" alt="">
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>Python is a programming language. MacPython is a package containing
|
|
||||||
that programming language plus Mac-specific tools and extensions.</p>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<h2>The Python Language</h2>
|
|
||||||
<p>The Python programming language is available for many hardware
|
|
||||||
platforms, and most general documentation is Unix- or Windows-centered. Keep
|
|
||||||
this in mind when reading the rest of this help, or information on the web.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>The Python website, <a href="http://www.python.org">www.python.org</a>,
|
|
||||||
has a <em>Beginners Guide</em> section including an
|
|
||||||
<a href="http://python.org/doc/essays/blurb.html">executive summary</a> on
|
|
||||||
the language and a
|
|
||||||
<a href="http://python.org/doc/essays/comparisons.html">comparison</a> of Python
|
|
||||||
to other languages. Or read the (rather longwinded) Python
|
|
||||||
Tutorial in the <a href="doc/index.html">Python Language and runtime documentation</a>.</p>
|
|
||||||
|
|
||||||
<p>MacPython contains a complete <a href="shell.html">unix interpreter</a> so
|
|
||||||
if you are familiar with Python on unix you should feel right at home.</p>
|
|
||||||
|
|
||||||
<h2>MacPython additions</h2>
|
|
||||||
|
|
||||||
<p>The MacPython Integrated Development Environment (IDE) allows
|
|
||||||
easy editing, running and debugging of scripts. Read the
|
|
||||||
<a href="ide/index.html">Introduction
|
|
||||||
to the IDE</a> to whet your appetite.</p>
|
|
||||||
|
|
||||||
<p>MacPython comes with lots of modules that allow access to
|
|
||||||
MacOS-specific technology, such as Carbon, Quicktime and AppleScript.
|
|
||||||
See the <em>Macintosh
|
|
||||||
Modules</em> section of the
|
|
||||||
<a href="doc/index.html">Python Language and runtime documentation</a>,
|
|
||||||
but please keep in mind that some information there still pertains to
|
|
||||||
Mac OS 9.
|
|
||||||
|
|
||||||
Full access to the Cocoa APIs
|
|
||||||
and tools such as Interface Builder is available separately through the
|
|
||||||
<a href="packman.html">Package Manager</a>.</p>
|
|
||||||
|
|
||||||
<p>The <a href="packman.html">Package Manager</a> also gives you access to extension
|
|
||||||
packages for cross-platform GUI development (Tkinter, wxPython, PyOpenGL),
|
|
||||||
image processing (PIL), scientific
|
|
||||||
computing (Numeric) and much more. <em>PyObjC</em> deserves a special mention: it allows
|
|
||||||
transparent access to Cocoa and Interface Builder, similar to what Java provides,
|
|
||||||
thereby making Python a first class citizen in the Mac OS X developer world. </p>
|
|
||||||
|
|
||||||
<p>Python scripts can be saved as <em>applets</em>, semi-standalone applications
|
|
||||||
that work just like a normal application. Additionally you can even create
|
|
||||||
true standalone application that have everything embedded and can be
|
|
||||||
shipped to anyone, without the need to install Python. You do <em>not</em>
|
|
||||||
need to install the Apple Developer Tools for this. </p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,64 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
|
||||||
<title>Python Package Manager</title>
|
|
||||||
<meta name="generator" content="BBEdit 6.5.3">
|
|
||||||
<link rel="SHORTCUT ICON" href="pythonsmall.gif">
|
|
||||||
<META NAME="AppleIcon" CONTENT="pythonsmall.gif">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>Installing additional Python Packages</h1>
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<img src="PackageManager.gif" width="128" height="128" align="top" alt="">
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>The Python Package Manager helps you installing additional
|
|
||||||
packages that enhance Python. It determines the exact MacOS version
|
|
||||||
and Python version you have and uses that information to download
|
|
||||||
a database that has packages that are test and tried on that
|
|
||||||
combination. In other words: if something is in your Package Manager
|
|
||||||
window but does not work you are free to blame the database maintainer.</p>
|
|
||||||
|
|
||||||
<p>PackageManager then checks which of the packages you have installed
|
|
||||||
and which ones not. This should also work when you have installed packages
|
|
||||||
outside of PackageManager.
|
|
||||||
You can select packages and install them, and PackageManager will work
|
|
||||||
out the requirements and install these too.</p>
|
|
||||||
|
|
||||||
<p>Often PackageManager will list a package in two flavors: binary
|
|
||||||
and source. Binary should always work, source will only work if
|
|
||||||
you have installed the Apple Developer Tools. PackageManager will warn
|
|
||||||
you about this, and also about other external dependencies.</p>
|
|
||||||
|
|
||||||
<p>PackageManager is available as a separate application and also
|
|
||||||
as a function of the IDE, through the <tt>File->Package Manager</tt> menu
|
|
||||||
entry. </p>
|
|
||||||
|
|
||||||
<h2>Troubleshooting</h2>
|
|
||||||
|
|
||||||
<p>If package manager fails to open the database first check that you are
|
|
||||||
connected to the internet. If you are connected then the problem
|
|
||||||
could be that there is no database (yet?) for your version of Mac OS X.
|
|
||||||
You may be able to find an alternative
|
|
||||||
database that works for your system at
|
|
||||||
<a href="http://www.python.org/packman">http://www.python.org/packman</a>.
|
|
||||||
In the standalone Package Manager you can then open such an alternative database
|
|
||||||
with the <tt>File->Open URL...</tt> command, but you should realize that
|
|
||||||
you are now on untested ground.</p>
|
|
||||||
|
|
||||||
<p>Another potential problem source is that you are behind a firewall. This version
|
|
||||||
of PackageManager uses the Unix method of setting a firewall: you need to set the
|
|
||||||
environment variable <tt>http_proxy</tt> to <tt>"http://<i>proxyhost</i>:<i>port</i>"</tt>.
|
|
||||||
See <a href="http://developer.apple.com/qa/qa2001/qa1067.html">Apple Technical
|
|
||||||
Q&A QA1067</a> for instructions.</p>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<hr>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 138 B |
|
@ -1,53 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
|
||||||
<title>Controlling other Applications from MacPython</title>
|
|
||||||
<meta name="generator" content="BBEdit 6.5.3">
|
|
||||||
<link rel="SHORTCUT ICON" href="pythonsmall.gif">
|
|
||||||
<META NAME="AppleIcon" CONTENT="pythonsmall.gif">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>Controlling other Applications from MacPython</h1>
|
|
||||||
|
|
||||||
<p>Python has a fairly complete implementation of the Open Scripting
|
|
||||||
Architecure (OSA, also commonly referred to as AppleScript), allowing
|
|
||||||
you to control scriptable applications from your Python program,
|
|
||||||
and with a fairly pythonic interface. This piece of
|
|
||||||
Python:</p>
|
|
||||||
|
|
||||||
<blockquote><pre><tt>
|
|
||||||
import Finder
|
|
||||||
|
|
||||||
f = Finder.Finder()
|
|
||||||
print f.get(f.window(1).name)
|
|
||||||
</tt></pre></blockquote>
|
|
||||||
|
|
||||||
<p>is identical to the following piece of AppleScript:</p>
|
|
||||||
|
|
||||||
<blockquote><pre><tt>
|
|
||||||
tell application "Finder"
|
|
||||||
get name of window 1
|
|
||||||
end tell
|
|
||||||
</tt></pre></blockquote>
|
|
||||||
|
|
||||||
<p>To send AppleEvents to an application you must first create the Python
|
|
||||||
modules interfacing to the terminology of the application (what
|
|
||||||
<tt>Script Editor</tt> calls the "Dictionary"). Use the IDE menu command
|
|
||||||
<tt>File->Generate OSA Suite...</tt> for this. For more control run</p>
|
|
||||||
|
|
||||||
<blockquote><tt>
|
|
||||||
pythonw .../Lib/plat-mac/gensuitemodule.py --help
|
|
||||||
</tt></blockquote>
|
|
||||||
|
|
||||||
<p>from a terminal window.</p>
|
|
||||||
|
|
||||||
<h2>Creating a scriptable application in Python</h2>
|
|
||||||
|
|
||||||
You can also create a scriptable application in Python, but this is not
|
|
||||||
very well documented. For Carbon
|
|
||||||
applications you should look at the <tt>MiniAEFrame</tt> module.
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,52 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
|
||||||
<title>Python and the Unix Shell</title>
|
|
||||||
<meta name="generator" content="BBEdit 6.5.3">
|
|
||||||
<link rel="SHORTCUT ICON" href="pythonsmall.gif">
|
|
||||||
<META NAME="AppleIcon" CONTENT="pythonsmall.gif">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>Running Python scripts from the Unix Shell</h1>
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<img src="python.gif" width="128" height="128" align="top" alt="">
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>MacPython 2.3 installs a perfectly normal Unix commandline
|
|
||||||
python interpreter in <tt>/usr/local/bin/python</tt>. As of Mac OS X 10.2, however,
|
|
||||||
<tt>/usr/local/bin</tt> is not on the search path of your shell. Moreover,
|
|
||||||
Apple's python 2.2, which lives in <tt>/usr/bin</tt> <em>is</em> on your
|
|
||||||
search path, so this can lead to confusion.</p>
|
|
||||||
|
|
||||||
<p>If you use <tt>tcsh</tt> you should add the following line
|
|
||||||
to the file <tt>.login</tt> in your home directory and restart Terminal:
|
|
||||||
<br>
|
|
||||||
<tt>setenv PATH /usr/local/bin:$PATH</tt>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>If you use <tt>bash</tt> or <tt>zsh</tt>
|
|
||||||
you should add the following line
|
|
||||||
to the file <tt>.profile</tt> in your home directory and restart Terminal:
|
|
||||||
<br>
|
|
||||||
<tt>export PATH=/usr/local/bin:$PATH</tt>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>GUI scripts</h2>
|
|
||||||
|
|
||||||
<p>Due to the way MacOS handles windowing applications you need to run
|
|
||||||
<em>all</em> scripts that use the window manager (be it through
|
|
||||||
Carbon, Cocoa, Tkinter, wxPython, PyOpenGL or anything else) with the
|
|
||||||
<tt>pythonw</tt> interpreter, also installed in <tt>/usr/local/bin</tt>.</p>
|
|
||||||
|
|
||||||
<p>Running with <tt>python</tt> results in an inability to bring the
|
|
||||||
script to the front, or interacting with it. </p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<hr>
|
|
||||||
</body>
|
|
||||||
</html>
|
|