A New Harvest of Python IDEs

Use this pragmatic guide to pick the Python IDE that's right for you. The author compares and contrasts the most important features, and illustrates each IDE with screenshots to help his descriptions.

Use this pragmatic guide to pick the Python IDE that's right for you. The
author compares and contrasts the most important features, and illustrates each
IDE with screenshots to help his descriptions.

Introduction

Python developers have always had reason to look with some measure of jealousy
at their Java, C, or C++ colleagues. There have always been excellent integrated
development environments (IDEs) for those languages, both for Windows and for
Linux. Examples abound: Borland JBuilder, Microsoft Visual C++, Kdevelop, and
so on.

Python, in comparison, has always been an "editor and a shell" language.
Not that there is anything wrong with the "editor and shell" approach,
but the integration of a source browser, debugger, Python shell environment,
project manager, editor, and perhaps GUI editor in one package can make a developer
very productive. Of course, the boundaries between editors and IDEs are fuzzy.
I'm quite sure that Emacs with its Python mode should count as an IDE, too,
but in this review, I'm concerned with dedicated Python IDEs.

Python has had the IDLE IDE since version 1.5.2, but until now only Windows
has had a really comfortable IDE, namely Pythonwin. The lack of good
Python IDEs for Linux also points to a difference between Windows or MacOS and
Unix that's very importantwith the Unix shell being so much more comfortable
than a DOS box and the editors so much better than their Windows counterparts,
it seems natural that Windows Python IDEs are far more advanced than Unix Python
IDEs. However, with the release of Wing IDE for Unix/X11 and the imminent release
of PythonWorks for Linux, this is set to change.

Python IDEs are, for the most part, written in Python, using one of the several
available widget sets, such as tkInter, Pythonwin, or PyGTK. Indeed, the Python
libraries offer several very useful modules for writing IDEs, such as pyclbr.py,
which implements the parsing for a class browser, or pydb.py, which offers the
basics for a debugger. These modules have been available for a very long time,
and it's curious to see that they haven't been utilized more extensively before.