Select the Best Python IDE
Sometimes PyCharm does feel slow, but it’s improving in each version. The current version feels much faster than the first version. In fact, it’s a no brainer if you consider that PyCharm gives you top-notch completion, code analysis and code navigation. As a comparison, Emacs starts much faster in my computer, but completion with ropemacs is way slower and less accurate than PyCharm’s.
PyCharm has great support and bugs are fixed regularly. It has good documentation, although I wish the on-line documentation had a more modern look with shallower structure. For example, the subsection “Version Control with PyCharm” is subdivided in eight subsections that are small enough to fit in one larger and easily scrollable page. Also, it would be nice to have the documentation as a PDF file.
WingIDE is a solid IDE from Wingware. It has many advanced features such as a first-rate debugger, code intelligence, and it can be extended in Python.
WingIDE’s debugger is super powerful and allows you to set breakpoints, step through code, inspect data, debug remotely, and debug Django templates. It has support for matplotlib where the plots are updated automatically.
For web development, WingIDE supports Django, Plone, Pyramid, Google App Engine and many others.
My main criticism is that the GUI, although responsive, is unattractive, old-fashioned, and quirky.
For instance, you can’t just open an existing directory like you can with PyCharm or TextMate; you need to create a new project (Project→New Project). But WingIDE doesn’t ask for the project’s name. The project will receive a default name and you can rename it if you want (Project→Save Project). Now you can add files or an existing directory (Project→Add Existing Directory).
And when you add a directory, it’s added to the Project pane folded (that is, the files and subdirectories are hidden) by default:
I hate being persnickety, but the first time I imported a Django project I was staring at the screen wondering what went wrong since nothing happened. After a while a noticed the small change in the left corner.
In general you can’t discover much from the UI. There’s no explicit support for Virtualenv; we need to select the Python binary in Project→Project Properties. This is not a big deal, but if we need to set a Django Settings module we need to type it in a text box, instead of just selecting the file directly with a file dialog. And, as we all know, it’s easy to make mistakes when typing. For example, in the following screenshot the value for
DJANGO_SETTINGS_MODULEis wrong. After trying to run the code I realized that it should be
list of commands in the manual and type it in the text box (it has completion). Again, it’s not a huge deal, but it’s nice when you can accomplish things without leaving the IDE.
3. PyDevPyDev is a Python IDE for Eclipse with Django support, code completion, code analysis, navigation, remote debugging, interactive console and much more. You can install it as a plugin for Eclipse or by installing LiClipse, an advanced Eclipse distribution.
impressed by it. However, sometimes things in Eclipse are unnecessarily complicated. For instance, the way it imports code in a project is just moronic. I find that I need to search or look up the documentation to accomplish even the simplest task such as changing the text font. This is not PyDev’s fault and, if anything, PyDev maintainer Fabio Zadrozny deserves big kudos for making it bearable to work with Python in Eclipse.
4. Komodo IDEKomodo is an IDE for dynamic languages such as Python, PHP and Ruby. The new version has many improvements such as code refactoring, multiple selections, better UI interface, open fast dialog, and much more.
It’s a good IDE if you deal with multiple languages and don’t do much web programming. Otherwise I think PyCharm, WingIDE, and PyDev are way ahead for a more reasonable price.