Announcing Shrubbery

ipython showing inline plot

Getting a good Python setup on MacOS can be a pain. There’s various ways to do it (such as Homebrew and Macports) but they involve quite a bit of know-how. I often want to share a script I’ve written with a friend, and find they’ll need to spend several hours compiling a suitable environment to run it.

To solve this problem I’ve created Shrubbery, a Python 3 distribution for Mac OS. Shrubbery comes with scipy, numpymatplotlib and ipython comprising the ‘pylab’ environment. Also included is PyQt allowing you to quickly write cross-platform GUIs, and a few other bits and bobs (such as Cairo) that I find useful. It is distributed in ‘.pkg’ installer form and installs into a self contained prefix. To use it, simply:

  • install Python 3.2.1 from
  • install shrubbery – grab the latest .pkg file
  • then to launch ‘pylab’ in the incredibly swanky Qt console mode (as pictured above) open a terminal and run:
    source /opt/shrubbery/shrubbery.env
    ipython3 qtconsole --pylab=inline

That last part will be wrapped up in an application you can drag to the Dock in a future release :-)

Note that shrubbery is in an ‘alpha’ state, so you may encounter problems. Please let me know if you do! I’ve had help from some very nice people on the iPython mailing list sorting out a few bugs I’ve uncovered in their Python 3 support, I’m sure there are more problems which you can help uncover.

Shrubbery itself is built using some scripts which I have made available under the Apache 2.0 license. Pull requests / patches gratefully received :-) If there’s any Python module you find useful (particularly for science / mathematics / DSP / image processing) let me know and I’ll consider including it. The next release will include a version of the Python Imaging Library that works with Python 3.

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s