InfoWorld review: Nine fine Python development tools

A wide-ranging flock of Python IDEs offer great options for Windows scripting, GUI applications, Web frameworks, multilanguage development, and more

Python has certainly distinguished itself as a go-anywhere, do-anything language. As a language for desktop application development, it can be found behind the Resolver One spreadsheet. As an embedded script language, it's inside the highly respected Blender graphics package and the Rhythmbox media player. It is the binding glue of the Sage open source math package and the Portage package management system of Gentoo Linux. On the Web, it powers the highly popular Zope, TurboGears, and Django frameworks. The list goes on, as any quick Google search will show.

Object-oriented and dynamic, Python encourages rapid, iterative, and almost exploratory development. But good Python development starts with a good Python IDE. In this roundup, I examine nine Python development environments, many open source, but some commercial. They are Boa Constructor, Eric, ActiveState's Komodo, Oracle's NetBeans, Aptana's Pydev, PyScripter, SPE, Spyder, and WingWare's Wing IDE.

Of course, there's also IDLE, the IDE supplied with Python itself. Written using the Tkinter GUI toolkit, IDLE opens instantly into an interactive console. It has no notion of a project, nor is there an included GUI builder. Its configuration is minimal, dealing mainly with fonts, colors, and shortcut keys.

Its debugger is bare bones too, but it gets the job done. Activate the debugger, and when you run an application it starts up immediately. Buttons let you single-step, step over, or step out; also, you can set breakpoints by right-clicking the line in the text editor. While debugging, IDLE provides a view of the current stack and locals. You can activate views for source and globals; from the source view, IDLE will highlight the line that is the current execution point. IDLE is a no-nonsense IDE for editing and debugging Python modules and files as single entities. Many Python developers need more.

This flock of alternatives makes clear that there is no single best Python IDE; the range of problems that these IDEs attempt to solve is too wide to permit a solitary, superior candidate. If you need an IDE that allows development in multiple languages, then Komodo is probably your best bet, though Pydev is a close second and will likely be as good once its documentation holes are filled. If you need an IDE for GUI development, then Eric and Boa Constructor are equally good.

Be prepared, however, to work out development details on your own; both Eric and Boa Constructor beg for additional documentation. For building single-module Python scripts, PyScripter is excellent, though limited to Windows. Linux and Mac users should check out SPE. And finally, if you need an analytics environment for working with the NumPy and SciPy math libraries, Spyder is the place to go.

Happily, many of these products are free open source, and those that are not offer multiweek trial periods. Your best bet is to choose one that appears the closest fit to your particular requirements, and then turn yourself loose on it.

Nine fine Python development tools: Boa Constructor

Nine fine Python development tools: Eric

Nine fine Python development tools: Komodo

Nine fine Python development tools: NetBeans

Nine fine Python development tools: Pydev

Nine fine Python development tools: PyScripter

Nine fine Python development tools: SPE

Nine fine Python development tools: Spyder

Nine fine Python development tools: Wing IDE

InfoWorld Scorecard
Tools (20.0%)
Documentation (20.0%)
Platform support (20.0%)
Ease of use (25.0%)
Installation (15.0%)
Overall Score (100%)
Boa Constructor 0.2.3 9.0 8.0 7.0 6.0 9.0 7.7
Eric 4.4.6 8.0 4.0 9.0 7.0 8.0 7.2
Komodo 5.2.4 8.0 9.0 8.0 9.0 9.0 8.6
NetBeans 6.8 Python Early Access Version 9.0 8.0 6.0 8.0 8.0 7.8
Pydev 1.5.9 10.0 7.0 9.0 7.0 8.0 8.2
PyScripter 7.0 7.0 8.0 10.0 9.0 8.3
SPE 0.8.4 8.0 8.0 8.0 8.0 8.0 8.0
Spyder 1.0.3 8.0 8.0 7.0 8.0 7.0 7.7
Wing IDE 3.2.9-1 8.0 9.0 9.0 8.0 8.0 8.4
Page 1 of 11