Introduction:

In this article we’ll review several Python IDEs. We will mainly concentrate on IDEs that are cross-platform and that support Python natively or via plugins. In case we’ve missed one of your favourite IDE’s, please, let us know in comment section, you can also visit Python website and check out full list of Python IDEs.

PyCharm

PyCharm is actually one of the most if not the most popular Python IDE. It has great variety of features such as almost perfect code completion, code analysis, neat debugger, code navigation, and support of various web frameworks and languages, such as HTML, CSS, Django and JavaScript.

Not to mention that recenly JetBrains showed several PyCharm editions, such as Community Edition and Educational Edition which are both free and suitable for full-fledged development process.

The only downside of PyCharm is it’s speed, sometimes PyCharm does feel slow, but it’s constanly updating and improving, so you might not even encounter any slowness, UI can be a pain too, but after spending several minutes on UI configuration, your IDE will look as native as app can look.

TL;DR: With great plugin support and rich Python tools integration, PyCharm became one of the best Python IDEs out there.

WingIDE

WingIDE is a Python-only Wingware IDE. It’s a feature wide IDE that is suitable for professional development, WingIDE offers features such as awesome code completion, great debugger, and it can be also scripted and extended in Python.

WingIDE is in development over 15 years, it’s debugger has grown from a simple tool to a super powerful jedi sword of debugging, it features breakpoints, steps, various data inspections, frameworks debug and a remote debug. In case your are interested in math-related development, WingIDE supports matplotlib with automatic plot updates.

In case you’re into web development, WingIDE is here for you too, it supports various web-frameworks, such as Pyramid, Django, Plone and of course Google App Engine and many others.

And now about the not-so-cool stuff: WingIDE UI looks 2007-ish, it’s pretty easy to use but it’s unattractive, old-fashioned, and quirky. You can’t do some basic stuff the way you used to, for example in PyCharm you can simply open existing directory with your recent project and continue as is, but in WingIDE you will need to go though boring process of creating new project and adding exisitng folder only once you’re done. Overall UI experience with WingIDE is not the best one, there’s surely some better options in terms of usability.

One of the another downsides, there’s no explicit support for Virtualenv; you need to select the Python binary form Project Properties. This is actually not a big deal, but if you need to set a Django Settings module you need to type it in a text box, instead of just selecting the file directly with a file dialog.

Sublime Text 3

Sublime Text is a very powerful text editor with a rich set of extensions. Editor is shareware, but there’s actually no restrictions if you’re not buying a license.

Some developers from CheckiO team already moved on to the third version of the editor, immediately after it became a public beta, so in this article we will consider it Sublime Text 3. From notable killer-features that are available in 3rd version, we can can note ‘Go To Definition’, which makes it easy run on the definitions of functions and variables in the current project, and of course the speed of the editor. Now plugins are isolated from the main application.

There’s not much we can say about Sublime Text 3 itself, because it’s really barebones and mainly relies on plugins, we will guide you thruough some of the most important ones.

Package Control

Package Control is an unofficial extension that will allow you to easily install and update your plugins. We won’t talk about installation and configuration, so i’ll just share the link to official site and installation instructions

Bracket Highligheter

Bracket Highligheter allows beautifully highlight matching parentheses. The plugin works out of the box and the result of it’s work is obvious.

SublimePythonIDE

Let's move on to an extension that will make the editor almost complete IDE.

SublimePythonIDE (ex SublimeRopefor ST2). Without this extension, you can run through functions, methods, and variables only within the current project, but after installing SublimePythonIDE you can move throught the declarations of all the modules specified in the environment variable PYTHONPATH.

It’s getting boring to choose an item from the context menu each time, so it’s better to assign the Go To Definition command a certain combination of keyboard. The standard package includes SublimePythonIDE PyLint, which can highlight errors and warnings using PEP8 rules.

Eclipse\PyDev

The Eclipse platform which provides the foundation for the Eclipse IDE is composed of plug-ins and is designed to be extensible using additional plug-ins. Developed using Java, the Eclipse platform can be used to develop rich client applications, integrated development environments and other tools. Eclipse can be used as an IDE for any programming language for which a plug-in is available.

The Java Development Tools (JDT) project provides a plug-in that allows Eclipse to be used as a Java IDE, PyDev is a plugin that allows Eclipse to be used as a Python IDE, C/C++ Development Tools (CDT) is a plug-in that allows Eclipse to be used for developing application using C/C++, the Eclipse Scala plug-in allows Eclipse to be used an IDE to develop Scala applications and PHPeclipse is a plug-in to eclipse that provides complete development tool for PHP.

Here we will learn about one of those plugins, PyDev

PyDev is a Python IDE for Eclipse, which may be used with Python, Jython and IronPython development. It comes with many goodies such as: Django integration, Code completion with auto import, type hinting, code analysis, go to definition, refactoring, debugger, remote debugger, find referrers in debugger, tokens, browser, interactive console, unittest integration, code coverage and many others. You can install it as a plugin for Eclipse or by installing LiClipse, an advanced Eclipse distribution. LiClipse adds support not only for Python, but for related languages such as CoffeScript, JavaScript, Django Templates, and much more. What PyDev is really lacks is better documentation.

Another downside of PyDev, is that some thing in it are unnecessarily complicated. For instance, code import is extremly painful.

If you are already familiar with Eclipse , then PyDev is for you. If you want to try it out but has never used Eclipse before, I suggest you get a book to get acquainted with the Eclipse-way of doing things.

VIM

Vim is a highly configurable text editor built to enable efficient text editing.Vim, a clone of Vi - to be more precise, Vim is a superset of Vi - is an extremely reliable and powerful text editor which is available for various platforms. The novice will find Vim complicated and confusing. In case you’ve decided to swithc your primary text editor to VIM, youshould take the time and learn the basic 20 Vi commands. That said, it takes discipline to learn. If you have a job and can't afford the productivity hit (without getting fired), I'd suggest taking on a weekend project for the sole purpose of learning the editor. For the beginner, it may be helpful to use the graphical version of Vim (gvim) in easy mode to make it behave as a normal "click and paste" text editor. An alternative is the Cream package which changes Vim's default behaviour. In the long run, and for those who frequently use a text editor it will be rewarding to use Vim normally. But once you overcome all complicated suff, believe me, you’re not coming back to any other editor, with hyper-big library of supported plugins, VIM becomes one of the most deadliest weapons in hands of skilled developer.

Conclusion

If you are looking for a full-fledged and cross-platform Python IDE, then probably you should stick with PyCharm, WingIDE, or PyDev.

Both PyCharm and WingIDE have commercial licenses and have personal and or student licenses, as an option, you can get free licenses for your classroom or in case you’re an open source developer. PyDev(Eclipse) is free and a LiClipse will cost you something like $50, which is must buy if you have to use Eclipse.

Our team primary uses PyCharm and Sublime Text 3, they are both very good and well-supported pieces of software, along with constant updates, they might even become more awesome soon!

You basically can’t go wrong with any of described IDEs, so it’s up to you to decide, will you spend lots of time on learning VIM and beat everyone in terms of efficiency, or you’ll use PyCharm, configure it in 5 minutes and start your first project.