Top 5 open source Python IDEs

When it comes to Python programming, you have many options for great integrated development environments.
Register or Login to like
Register or Login to like
Programming keyboard.

Opensource.com

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 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. An IDE is essentially a text editor, but with lots of additional features, sometimes specific to just one or two programming languages, to help the programmer keep track of the project as a whole. For instance, most IDEs keep a cache of class, function, and variable names so they can be autocompleted quickly. Others have debug tools, instant logic and error checking, and so on.

The line between an advanced text editor and a slim IDE isn't always clear. As you gain experience, you usually develop an opinion about which features you consider essential for your development needs, and even those sometimes depend on what project you're working on.

Here are some of the most popular options available to Python developers. All are cross-platform, so they can be used on your operating system of choice.

Eric

Eric is a common 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 used in a number of different IDEs and editors, and 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, and so on. It also has a Qt form preview function, which is useful if you're developing a Qt GUI for your application. I personally like the integrated task list function.

If you're new to IDEs as a concept, Eric can take some time to master, and you might question whether learning an IDE specific to just Python is worth the time investment. I find Eric to be a great, lighweight, yet full-featured programming environment, and learning it can help the quality of your code and gets you familiar with conventions common to all IDEs.

Eric is available under the GPL version 3.

 

Pyzo

Pyzo is a Qt-based editor with a built-in file browser, project overview, log, debugger, indentation tracker, and much more. It considers itself an alternative to MATLAB, although actually it's a useful editor for any Python project, not just those dealing with advanced mathematics and science.

Because it's built with Qt, your workspace is highly configurable. You can move panels to suit your workflow or to simulate a specific IDE layout you're used to. The ability to show and hide tool panels based on what information you want in front of you can be a useful way of helping yourself focus, and because you can assign nearly every option to a specific key combination, you can keep your Pyzo editor fluid and dynamic.

Pyzo is a simple IDE, it's not a whole ecosystem the way Eclipse is. It doesn't have a plugin architecture (aside from being open source and therefore inherently hackable), and its main goal is to stay out of your way except to help keep track of your code.

 

Screenshot of Pyzo Python IDE

Spyder

The Spyder IDE, like Pyzo, targets data scientists as its audience. Unlike Pyzo, Spyder is a true environment all its own. It's a big, complex, and feature-rich application with panels to display rendered data, code output, logs, history, and much more. It can be downloaded on its own, or as part of a bundle along with the Anaconda distribution, a popular programming toolkit used by Python and R programmers.

 

Screenshot of Spyder Python IDE

opensource.com

PyCharm

PyCharm is another popular Python editor. There are two versions of PyCharm, and the free and open source edition of PyCharm is the community edition, available 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 advanced features included in the closed source verion, having the features left out may leave PyCharm as a simple and relatively lightweight choice for Python editing.

 

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. Depending on your requirements, it may seem bloated or over-complex.

That said, if you're coming to Python from a background in a different language, particularly Java, then Eclipse may already be a familiar IDE. And if you make use of its many features, you may find life without them difficult. Even if you're new to programming, Eclipse can be a great IDE to start on, because once you learn it, you can likely use it for most or everything else you work on, regardless of language.

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. In case you're working with the popular Django Python web framework, then you can leverage PyDev to create new Django projects, execute Django actions with hotkeys, and use a separate run configuration specific to Django.

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

 

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 tools for working with Python code. And of course there's IDLE, the default IDE packaged with Python.
  • GeanyAtom, and Brackets are general purpose code editors with Python support through plugins.
  • Netbeans and VS Codium are open source general purpose IDEs that, like Eclipse, can be transformed into Python editors with selected plugins and extensions.
  • Most extensible code editors are likely to feature Python support. For instance, Emacs can be a full-fledged Python IDE if you know which packages and configurations to use. The KDE editor Kate has syntax highlighting, code collapsing, and project directory support by default, plus further extensions to help along the way.

The important thing to understand about a Python IDE or Python editor is that the best choice is the one that solves a problem. If you get overwhelmed by options and configurations, then choosing a lightweight and simple IDE or text editor may be appropriate. If you want something to help you write cleaner code with fewer errors, then a feature-rich editor with caching and linting might serve you better. Try some of the ones listed here, or ones you find on your own, and see which one works for you. After all, one of the strengths of open source is choice.

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.

This article was originally published in October 2015 and has been updated to include additional information.

Are you interested in reading more articles like this? Sign up for our weekly email newsletter.

Jason Baker
Former Red Hatter. Now a consultant and aspiring entrepreneur. Map nerd, maker, and enthusiastic installer of open source desktop and self-hosted software.
Seth Kenlon
Seth Kenlon is a UNIX geek, free culture advocate, independent multimedia artist, and D&D nerd. He has worked in the film and computing industry, often at the same time. He is one of the maintainers of the Slackware-based multimedia production project Slackermedia.

47 Comments

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.

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

In reply to by Rörd Hinrichsen (not verified)

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.

Another vote for Visual Studio Code, which is a fork of GitHub Atom...

In reply to by Ricky Brundritt (not verified)

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!)

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).

In reply to by dan (not verified)

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

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.

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

Anaconda uses Spyder as its IDE.

In reply to by Naveen Srivatsav (not verified)

Spyder is by far my favourite IDE for python.

The only thing i prefer more is gedit.

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.

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/

In reply to by Duncan McKean

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.

Yes, atom is a very good choice for Python

In reply to by adityaultra (not verified)

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).

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

In reply to by Xander (not verified)

Hi Don,

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

Thanks!

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.

Visual Studio Code ftw, I have been using it with Python for awhile now and I couldn't look back at anything else again. However sometimes IDLE is the best choice when I am on a PC that isn't mine lol.

I voted "Something else", I'm not a programmer but I know programming and I like python very much. I'm a sysadmin at $dayjob.

I mostly use mcedit for simple python (or other) programming but have tried several python IDEs and editors over the years.

I like Ninja-IDE very much.
Komodo Edit and Komodo IDE are also nice.

For bigger projects I guess I would use Kdevelop with it's python plugin.

I'm tempted to try Atom, but it's huuuuge! And I'm laaaazy :)

My teacher told us to use jupyter notebook. It's not an IDE, but it is easy to use.

I use Emacs, but I dabble with Ninja IDE. Quite nice, cross-platform, open source.

I checked out Ninja-ide, and it did look nice. The new Fedora Python spin uses it. However, it appears development has stopped. Their irc channel doesn't seem to be active, and their telegram group is a ghost town. It has issues because it hasn't moved to Qt5 and Qt4 is considered legacy now with support dropping off. The last commit of significance seems to be years ago. Newest versions of Debian and Ubuntu won't be supporting it because they are dropping support of Qt4 libraries. It is impressive, but I hope that development starts back up to bring it to Qt5.

I'm extremely fond of Pyzo. I never see anyone recommend it. I'm pretty sure it's because nobody knows about it, so it never gets listed as an option. It's pretty slick and simple.

ninja-ide!

Beginners should check out Thonny: http://thonny.org

It has great capabilities for animating program runtime behaviour.

Remember, Jason, software like PyCharm might be commercial, but what distinguishes it from other editors/IDEs you mention is that it's "proprietary". That's the opposite of free and open source, which can be (and often is) quite commercial.

OT: The snake is an anacondo, I'd assume, not a python.

I use Spyder on anaconda-navigator
Pretty useful

Visual Studio Code for me. When setup with IPython for the REPL and a good linter it is incredibly powerful while being lightweight and very simple to configure.

I totally agree, and with the new extension intellicode (which is basically artificial intelligence-enhanced IntelliSense for the Python language) it's even better.

In reply to by Alex Ioannides

I am a physics student, so I am partial to the spyder editor because it comes prepackaged with all kinds of data and array goodies as a part of anaconda. It works so nicely and doesn't have that bare bones feel.

Monkey Studio, I used to use SPE (no longer developed), but Monkey Studio is oriented to QT, and all my GUI apps use QT

I think its Wonderful, the list of options available to use for a Python IDE. I am old school and think IDLE, is still the best tool to use. Its fast with low overhead.

I have been using PyDev and its comes with ton of features. I have been using it with Selenium for automation.

Learn Selenium Java TestNG tutorials visit stqatools.com

Wing its great Python IDE too

Thank you for this great read! I agree with what you said about text editors—some of them can indeed work as well as IDEs do, especially if the project is smaller, or you don't mind customization. This article provides a great list of both Python IDEs and code editors, which I think adds an interesting perspective on the topic. Check it out: https://stxnext.com/blog/2020/01/29/best-python-ides-code-editors/

I was searching for this for a long time and It has to be a good thing to get that much info from this website.

Awesome post on Python IDES. Using Selenium with pycharm ide for Automation.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.