This is primarily just my scattershot notes on getting myself ready for
Python and C development on Mac. It really is a confusing picture as to
how to get started with Python development on the Mac. You can get a
bunch of bits and pieces from the official Mac page for Python , the
Python/Mac FAQ and a few other places, but it's hard to put it al
together to understand how The OS X bundled Python, MacPython, Fink,
MacPorts, framework or non framework, etc. all fit together, and how to
navigate the options. It didn't help that important Wiki pages such as
the FAQ had been vandalized, and I was not able to fix it for some
It seems to me that the reason for all this confusion is that a person
just needing to run some cool Python script they downloaded would go
about things in a very different way from someone like me who needs to
heavily maintain software that uses advanced Python/C facilities. It
all comes down to the split personality that comes from the OS X way
of life superimposed upon the UNIX way of life.
Picking a distribution
The key section from the FAQ is the following, pasted from the diff of
the vandalized page:
Q: Python overload! I've got Apple's Python, Jack's Python,
A: Newcomers to Python-on-X are often confused by the several
distributions of Python available. Each flavor has a history and a
reason for existance, but if you're starting out, you probably want to
look at the "official unofficial" builds of MacPython 2.4 on
http://undefined.org/python and install additional packages like
numarray or PIL from http://pythonmac.org/packages. These builds have a
feature set that supersedes that of the beloved 'official MacPython
builds' by Jack Jansen and solve many of the obstacles that are
described by the FAQ entries on this page.
I followed this advice and went with MacPython, but I also set up
MacPorts for some flexibility (see below).
Getting started with MacPython (including setuptools)
I grabbed and installed python-2.5-macosx.dmg
the page recommended in the FAQ.
I went with the approach of MacPython in system directories, but
packages I build from source in my home directory. This meant the
following in my
~/.profile, for a start, added after the "# Setting
PATH for MacPython 2.5" section added by the MacPython installer.
And then the following in
install_lib = ~/Library/Python/$py_version_short/site-packages
install_scripts = ~/bin
I also had to do a one-time
mkdir -p $PYSITE
I used setuptools for the first 4Suite and Amara install, following the
OS X specific
One wrinkle was that Firefox 220.127.116.11 refused to save the page with
ez_setup.py so I could run it. I tried changing locations and all that
to no avail. Smells like a bug. I just used Safari to get it in the
end. I noticed that OS X doesn't seem to come with wget. After this
set-up, a simple:
Worked like a champ, and so I had 4Suite and Amara installed. I also
got them set up in CVS easily enough, with the above basic config in place.
I also installed MacPorts, following the
I was able to log into Apple Developer Network very easily using my
Apple Store ID. One problem is that The instructions say:
Click Customize, expand the Applications category and click the
checkbox beside X11 SDK to add it to the default items.
But the XCode 2.4.1dmg I got had "X11 SDK" greyed out. I just went
ahead anyway, and it turns out you must install X11 itself before XCode
will allow you to install the X11 SDK. Makes sense, but the
instructions on the install page have this backward.
As for installing X11 itself, the page says:
Insert the OS X 10.4 installation DVD and run the package named
For the MacBook Pro the installation DVD is labeled "Mac OS X Install
Disc 1". The package is actually named "Optional Installs". I clicked
through until I got to the page where I could select X11:
You also need to use sudo for the ports update, which isn't clear in the
And that's really about as far as I got. I installed MacPorts just to
have it handy, just in case. I might first put it to use for wget,
which I won't be able to live without very long, and really should come
with OS X.