The top integrated development environments for Python

Top 3 open source Python IDEs

Posted 29 Oct 2015 by 

Jason Baker (Red Hat)
up
123 readers like this
Real python in the graphic jungle
Image credits : 

Photo by Jen Wike Huger, CC BY-SA; Original photo by Torkild Retvedt

What is your favorite Python IDE?

Python is everywhere. These days, it seems it powers everything from major websites to desktop utilities to enterprise software. Python has been used to write all, or parts of, popular software projects like dnf/yum, OpenStack, OpenShot, Blender, Calibre, and even the original BitTorrent client.

It also happens to be one of my favorite programming languages. Personally, Python has been my go-to language through the years for everything from class projects in college to tiny scripts to help me automate recurring tasks. It's one of few languages out there that is both easy to get started with for beginners yet incredibly powerful when beginners graduate to working on real-world projects.

To edit Python programs, you have a number of options. Some people still prefer a basic text editor, like Emacs, VIM, or Gedit, all of which can be extended with features like syntax highlighting and autocomplete. But a lot of power users working on large projects with complex code bases prefer an integrated development environment (IDE) to the text editor plus terminal combination. The line between an advanced text editor and a slim IDE isn't always clear, and we'll leave it up to you to decide exactly which features you require for your development needs.

Let's look at some of the most popular options available to Python developers and see how they stack up. All three are cross-platform and can be used on your operating system of choice.

Eclipse with PyDev

It's hard to write anything about open source integrated development environments without covering Eclipse, which has a huge developer community and countless plugins available allowing you to customize it to meet nearly any need you can imagine. But this kitchen sink approach is also one of Eclipse's downsides. Many criticize it as bloated, and performance on low spec systems certainly can be an issue.

That said, if you're coming to Python from a background in a different language, particularly Java, Eclipse may already be your go to IDE. And if you make use of its many features, you may find life without them difficult.

PyDev adds a huge number of features to Eclipse, far beyond simple code highlighting. It handles code completion, integrates Python debugging, adds a token browser, refactoring tools, and much more. For those working with the popular Django Python web framework, PyDev will allow you to create new Django projects, execute Django actions via hotkeys, and use a separate run configuration just for Django.

Eclipse and PyDev are both made available under the Eclipse Public License.


Eric

Eric is my personal favorite IDE for Python editing. Named after Monty Python's Eric Idle, Eric is actually written in Python using the Qt framework.

Eric makes use of Scintilla, a source code editing component which is used in a number of different IDEs and editors which is also available as the stand-alone SciTE editor.

The features of Eric are similar to other IDEs: brace matching, code completion, a class browser, integrated unit tests, etc. It also has a Qt form preview function, which is useful if you're developing a Qt GUI for your application, and I personally like the integrated task list function.

I've heard some criticisms of Eric's documentation, which primarily being delivered through a massive PDF does leave something to be desired, but if you take the time to learn it, I find Eric to be a lighweight yet full-featured programming environment.

Eric is made available under the GPL version 3.


PyCharm

PyCharm is another popular Python editor and rounds out my top three. Pycharm is a commercial product, but the makers also offer a community edition which is free and open source under the Apache 2.0 license.

PyCharm features pretty much everything one might hope for in an IDE: integrated unit testing, code inspection, integrated version control, code refactoring tools, a variety of tools for project navigation, as well as the highlighting and automated completion features you would expect with any IDE.

To me, the main drawback of PyCharm is its open core model. Many of PyCharm's advanced features are not available under an open source license, and for me, that's a deal breaker. However, if you're not looking to use the more advanced features included in the closed source verion, having the features left out may leave PyCharm as a lighter weight choice for Python editing.


Other great options

The list of open source Python editors and integrated development environments is lengthy. Here are a few other interesting standouts.

  • PyScripterLeoEditor, and PTK (the Python Tool Kit) are all lesser-known tools for working with Python code. And of course there's IDLE, the default IDE packaged with Python.
  • Bluefish and Geany are two great general purpose IDEs with strong Python support.
  • Spyder is an IDE specifically designed for working with scientific Python development and the libraries commonly associated with this type of work.

This is not a comprehensive list of Python editing solutions. For an (almost) comprehensive list, check out the Python Foundation's lists of integrated development environments and editors for Python. Did we miss your favorite? Let us know what it is in the comments below, and tell us why it's your top pick.

17 Comments

robinmuilwijk

Great list. My favorites are Eclipse, but also Netbeans (https://netbeans.org/) which is also open source. Although originally supporting Java, Netbeans supports plugins that will allow you to use the IDE for several other programming languages, also Python (https://blogs.oracle.com/geertjan/entry/python_in_netbeans_ide_81).

Vote up!
1
Vote down!
0
Rörd Hinrichsen

A big one you missed is Wing IDE (https://wingware.com/), a commercial IDE written in Python itself. Its free edition Wing IDE 101 is very limited in features, but seems a perfect fit for beginning programmers who want some of the niceties of an IDE without being overwhelmed by the full feature set.

Vote up!
0
Vote down!
0
Jason Baker

Hi Rörd, I am familiar with Wing, but as far as I know, the free edition is not open source either.

Vote up!
0
Vote down!
0
Ricky Brundritt

I've been using the Python tools in Visual Studio and realm liking it. There is a free version of Visual Studio available as well.

Vote up!
0
Vote down!
0
dan

You mention as something of an afterthought "Bluefish and Geany are two great general purpose IDEs with strong Python support.".

OTOH, you neglected to mention that both of them (geany in particular) are INCREDIBLY lightweight, run on a very wide gamut of OS's, and don't have questionable license terms. These Python IDEs' lightweightedness are especially important considering that Eclipse with PyDev is "bloated, and performance on low spec systems certainly can be an issue" (quote is your own words!)

Vote up!
0
Vote down!
0
codetricity

I'm currently using and liking Geany. I like the speed and the light resource use. If's very snappy. Geany is generally an amazing IDE, it's underrated.

This said, I do feel that the lightweight and high performance aspects of an editor or IDE are important for some people, but not for all.

In my case, the main reason I started using Geany is because I was teaching a young child to program on the Raspberry Pi using X Display Forwarding over ssh to display the IDE to another Linux box. I had concerns that the child (10 years old) would get confused with vi or even with Emacs in a console. Even using Emacs with X Display forwarding didn't seem like the right thing to do since the Emacs keybindings are falling out of favor (I'ved used Emacs for two decades and admit this grudgingly). I tried NinjaIDE, but the performance over ssh with X forwarding was not good (from the Raspberry Pi).

Previously, my daughter had been using PyCharm Professional, but two months ago had moved to Atom, as the interface was less cluttered and thus less confusing in some ways. My son, her brother, went rogue and moved to Sublime. He likes the speed. He's young. All his teenage friends use Sublime. I think they like the speed. He seems to give Atom the nod as far as UI, but likes the speed of sublime.

When my daughter isn't working on the Raspberry Pi, her main workstation is pretty peppy. It has 30GB of RAM, 4.5Ghz quad-core i5, fast SSD disks. The performance of most IDEs is fine on the main system and not a consideration at her level.

While IDE resource consumption is important, it is more important to some people and also more important depending on usage (like network use) or equipment (like running on a low resource Raspberry Pi).

Vote up!
2
Vote down!
0
bcotton

I've tried to use other tools, but I still fall back to using gVim.

Vote up!
0
Vote down!
0
Don Watkins

Thanks for contributing to my learning again. I've used gedit and idle3 editors. I like them both but have been using idle3 more with the Python course I'm taking on Udemy.com.

Vote up!
0
Vote down!
0
Naveen Srivatsav

Does Continuum's Anaconda or Enthought Canopy count? I prefer the former as my go-to Python environment.

Vote up!
0
Vote down!
0
lachlan

Spyder is by far my favourite IDE for python.

The only thing i prefer more is gedit.

Vote up!
0
Vote down!
0
dncnmckn

This is a great article that has come along just at the right time. I've just started learning Python, partly for the challenge and partly because I think it will help me with tweaking Blender.

I've been using atom.io to help me with this, but after reading this article I might try a few more! Thanks.

Vote up!
1
Vote down!
0
codetricity

If you're just getting started, you can try Komodo Edit. This is free and open source. It's been around a very long time and is updated frequently. There's also a paid-for IDE with more features called Komodo IDE. Download Edit here and let me know what you think of it. http://komodoide.com/komodo-edit/

Vote up!
2
Vote down!
0
adityaultra

I use Atom with a few nice plugins for python. Such as Linter(with flake8) to lint code on the go. Inbuilt git integration helps a lot. And best is the coustomizability.

It's the future. Simply.

Vote up!
0
Vote down!
0
Xander

I'm a big proponent of open source - vim is amazing and I use it all the time but whenever I'm working on a big project, I use PyCharm (I purchased a license, for me, it's worth it).

Vote up!
0
Vote down!
0
codetricity

I have a commercial license for PyCharm professional and also bought a license for my teenage son. We both used it for years. He bought a license for Sublime and I started to use Atom. The rate of development with Atom and the plug-ins are pretty amazing. I still use vi every day for small tasks and have used Emacs for 20 years (I'm old). I didn't think that I would like Atom, but the ease of adding plugins is really cool. Syntax highlighting, checking, git integration, code completion, are all very nice. It seems easier to avoid using the mouse in Atom compared to PyCharm.

This said, I just realized that I've only been working on small code projects recently. As I'm writing this, I'm now wondering if there's a certain size of project where PyCharm advantages start to shine. There's probably a certain number of modules and files, where each editor is preferred.

Example:
vi: config files, single file projects, shorter files under a few lines of code
atom: small number of files with each file up to a thousand lines
pycharm: a dozen or more files

Vote up!
0
Vote down!
0
sheilar

Hi Don,

Please consider including Komodo Edit: free, open source, polyglot and built on Python:
http://komodoide.com/komodo-edit/

Thanks!

Vote up!
1
Vote down!
0
psachin

I use Emacs for all my Python & Django projects. Never had any problems. When extended with python-jedi, python-django, & magit, it can be a power and coolest IDE for Python.

Vote up!
0
Vote down!
0

Jason is passionate about using technology to make the world more open, from software development to bringing sunlight to local governments. He is particularly interested in data visualization/analysis, DIY/maker culture, simulations/modeling, geospatial technologies, and cloud computing, especially OpenStack. Follow him on Twitter or Google+.