Python is a high-level open source language that continuously extends its influence, from small development projects to the enterprise. It powers the highly respected Zope, TurboGears, and Django frameworks. Object-oriented and dynamic, Python provides tools for rapid and iterative development. But only good Python IDE can ensure good Python development.
In this article, we examine eight Python integrated development environments, many open source, but some commercial. They are Eric, Komodo, Pydev, PyScripter, SPE, Spyder, Wing IDE and PyCharm. Of course, there's also IDLE, the IDE provided by Python itself. Written using the Tkinter GUI toolkit, IDLE is simple, but in the long run it gets the job done.
Eric is a full featured Python editor and IDE, built on the cross-platform Qt GUI development framework. Overall, Eric IDE has a lot to offer. Eric lets you organize your work into projects. In fact, it comes with a multi-project viewer similar to Eclipse. The IDE has great plug-in management support; its Plugin Management Window will show you all available plug-ins. As you might guess, this Python IDE is perfect for building Qt-based GUI applications. The main downsides are the lack of thorough documentation for individual applications, an extremely cluttered UI, and probably the worst implementation of code completion.
Komodo is a good IDE, but it has some rough edges. Its code completion engine may sometimes refuse to cooperate. Probably the biggest win for Komodo is its support for multiple programming languages. If you need to build not only Python-based web applications, this might be the killer feature that makes you a Komodo customer.
Pydev is a plug-in for Eclipse that supports development in Python, CPython, Jython, or IronPython. It is the only IDE without built-in code completion engine. You will need to install it separately. Pydev provides the expected Eclipse debugging arrangement and supports debugging of multi-threaded applications. Perhaps the biggest drawback is that it has no real documentation. In terms of code completion it is a clear winner among all the IDEs reviewed.
PyScripter was initially designed to be a scripting solution for Delphi applications. In fact, it is built with Delphi (with additional components written in Python), and it is noticeably more responsive than other Python IDEs. PyScripter's interface is clean and easy to navigate. Its editor provides decent code completion, call tips, and will perform syntax check on the fly as you type.
SPE stands for Stani's Python Editor, after its author. It’s another open source IDE written in Python. The SPE editor supports code completion, call tips, and compile checking. One of IDE’s unique features is its integration with Blender, popular graphical rendering and animation system. SPE supports wxGlade; so that anything missing from within SPE (GUI building, debugging) can be performed by other means.
Spyder is another IDE written in Python. It has been verified to run on Windows, Mac, and Linux. It is multi-platform, easy to use, provides syntax coloring, interactive debugging, etc. Spyder is a Python IDE geared primarily to scientific and mathematical Python developers. It employs Python numerical libraries of NumPy, SciPy, and mathplotlib. Because Spyder uses PyQt, you can use it as an extension library for PyQt4 widgets.
Wing IDE holds the title of the most heavyweight Python IDE in this review. It requires rather powerful CPU to work correctly. Its code completion engine is unique as it supports not only functions and classes; Wing also completes keywords, modules, and locals. It has rather useful Source Assistant pane, the Wing’s answer to call tips. Wing is a fine Python IDE, and its documentation and support for Python web frameworks is top notch.
Ninja-IDE is rather new but promising IDE that is free, open source, lightweight, and cross-platform. Initially it was created for Python, but it handles code highlighting for several other programming languages. Ninja-IDE has powerful and highly configurable code editor. Due to clear color scheme, it is easy to work with mixed code. Ninja-IDE supports file handling, code search, editor zoom, go to line, tabs, automatic indentation, etc. Ninja-IDE allows to highlight wide range of errors and notifies about any deviations from PEP8 style guidelines. Code Locator with just a few keystrokes gives fast and direct access to all files, functions and classes inside development projects.
This number of different IDEs makes it clear that there is no single best Python IDE. The range of problems they attempt to provide solutions to is too wide to allow a single winner. If you need an IDE that supports development in multiple programming languages, then Komodo is probably the best choice for you, though Pydev is a runner-up and will likely be equally good once its documentation is complete. If you need an IDE with tools for GUI development, then Eric is the closest fit. Be prepared, however, to work out development details on your own, as Eric is a little short on documentation. To build single-module Python scripts, PyScripter is a safe bet, though limited to Windows. Linux and Mac users can use SPE instead. And finally, if you need an environment for working with the
SciPy math libraries, Spyder is the place to go.
Most of these products are free open source, and those that are not offer multiweek trial periods.