technomalogical
technomalogical

Reputation: 3002

Recommendations for Python development on a Mac?

I bought a low-end MacBook about a month ago and am finally getting around to configuring it for Python. I've done most of my Python work in Windows up until now, and am finding the choices for OS X a little daunting. It looks like there are at least five options to use for Python development:

I'm still primarily developing for 2.5, so the stock Python is fine from a functionality standpoint. What I want to know is: why should I choose one over the other?

Update: To clarify, I am looking for a discussion of the various options, not links to the documentation. I've marked this as a Community Wiki question, as I don't feel there is a "correct" answer. Thanks to everyone who has already commented for their insight.

Upvotes: 8

Views: 6970

Answers (11)

Sridhar Ratnakumar
Sridhar Ratnakumar

Reputation: 85272

And guess what was forgotten by every answer here ... ActivePython.

No compilation required, even for third-party modules such as numpy, lxml, pyqt and thousands of others.

ActivePython Community Edition logo

Upvotes: 1

Dave
Dave

Reputation:

How about EPD from Enthought? Yes, it's large but it is a framework build and includes things like wxPython, vtk, numpy, scipy, and ipython built-in.

Upvotes: 3

popcnt
popcnt

Reputation: 4645

Based on the number of bugs and omissions people have been encountering in Leopard python (just here on SO!), I couldn't recommend that version. e.g., see:

I would choose MacPorts.

It does not eliminate your existing python supplied by Apple since it installs by default in /opt/local/bin (plays nice with it) and plus it is easy to download and install additional python modules (even binary modules that you need to compile!). I use Porticus GUI to maintain my MacPorts installed list of packages, including python.

Upvotes: 2

John Fouhy
John Fouhy

Reputation: 42183

Apple's supplied python is quite old – my tiger install has 2.3.5. This may not be a problem for you, but you would be missing out on a lot. Also, there is a risk that Apple will update it. I'm not sure if moving from 2.3.5 to (say) 2.4 would cause code to break, but I guess it's possible. This happened to perl people recently: http://developers.slashdot.org/article.pl?sid=09/02/18/1435227

Macpython is a framework build (as is Apple's, I believe). To be honest, I'm not sure exactly what that means, but it's a prerequisite for some modules, in particular wxPython. If you get python from macports or fink, you will not be able to run wxPython (unless you run it through X11).

Upvotes: 1

Stefan Sveidqvist
Stefan Sveidqvist

Reputation: 3544

In my windows environment I use Eclipse and PyDev, which works quite well together, even if it's a bit sparse. Apparently the exact same environment is available for the Mac as well, so I suggest downloading Eclipse and using the internal update software function to update PyDev with the URL http://pydev.sourceforge.net/updates/. To look further into PyDev, look here.

Upvotes: 1

mikl
mikl

Reputation: 24267

I would highly recommend using MacPorts with Porticus for managing your Python installation. It takes a while to build everything, but the advantage is that whatever you build yourself will be built against the same libraries, so you won't have to futz around with statically linked shared objects, etc. if you want your Python stuff to work with Apache, PostgreSQL, etc.

If you choose to go this way, remember to install the python_select port and use it to make your system use the Python installed from MacPorts.

As an added bonus, MacPorts has packages for most main-stream Python eggs, so if you should be able to have MacPorts keep you up-to-date with the latest versions of all that stuff :)

Upvotes: 4

max
max

Reputation: 29983

Depends what you are using python for. If you are using MacOS funitionality and things like PyObjC you are probably best of with MacPython or the python provided by Apple.

I use Python on my Mac mostly for development of server side applications which later will run on FreeBSD & Linux boxes. For that I have used fink python for a few years and ever since MacPorts python. With mac ports it is simple to add required c modules (like database driver etc). It's also easy to keep two python Versions (2.5 & 2.6 in my case) around.

I used "compile your own" python to test pre-3.0 python but generally I find managing dependencies to c modules painfull if done by hand.

Thanks to easy_install installing pure python modules is fast and easy for all the options mentioned above.

I was never very much an IDE person. For development I use command line subversion installed by MacPorts, Textmate and occasionaly Expandrive do directly access files on servers. I personally are very dependent on Bicyclerepairman for Textmade to handle my refactoring needs.

Others seem to be very happy with Eclipse & Pydev.

Upvotes: 3

Reputation:

I recommend python (any python?) plus the ipython shell. My most recent experience with MacPython was MacPython 2.5, and I found IDLE frustrating to use as an editor. It's not very featureful, and its' very slow to scroll large quantities of output.

Upvotes: 0

Craig S
Craig S

Reputation: 952

One advantage I see in using the "stock" Python that's included with Mac OS X is that it makes deployment to other Macs a piece of cake. I don't know what your deployment scenario is, but for me this is important. My code has to run on any number of Macs at work, and I try to minimize the amount of work it takes to run my code on all of those systems.

Upvotes: 9

Bjorn
Bjorn

Reputation: 71830

I recommend using Python Virtual environments, especially if you use a Timecapsule because Timecapsule will back everything up, except modules you added to Python!

Upvotes: 2

Stig
Stig

Reputation: 31

Here's some helpful info to get you started. http://www.python.org/download/mac/

Upvotes: 3

Related Questions