The Best Python IDEs for 2020 (and Beyond)

So, you want to do some Python development and are looking to evaluate the integrated development environment (IDE) options out there.

In this article, I'll go over the best python IDEs for 2020 and beyond to help you make the right decision.

I'll list them in descending order, saving the very best for last.

Table of Contents

You can skip to a specific section of this article using the Table of Contents below:

The Factors That Make a Good Python IDE

Before we get into the list, let’s discuss which factors you should consider. Said differently, what should you look for in an IDE when deciding which one to use for your project?

The obvious first step is to consider what it is you've set out to build. Bigger and more complex projects will require different tools than would small, one-developer jobs.

Some of the fundamental criteria I look at when evaluating IDEs include:

  • Software maturity (more mature products tend to have more features and fewer bugs)

  • Community and support (can I get the help I need when I need it?)

  • Basic feature set (source code editor, debugger, build automation tools, etc.)

  • Extensibility (what plugins are available for the IDE?)

  • Outstanding or defining features (does the IDE do something others can't, and is it useful to me?)

Keep the above in mind evaluating your options and you won't be led astray.

With that said, let's jump right into the list.

1. Atom

Atom is a simple to use cross-platform IDE that is perfect if you're starting out with Python. It's beginner friendly but also feature-packed, and you can customize it to your heart's content.

Atom runs on Electron, which is a framework that facilitates the building of desktop apps with web technologies such as HTML, JavaScript, CSS. Major desktop apps like Slack are built using Electron.

The great thing about Atom is that it is maintained by GitHub. This means that you not only have a world-class team developing and supporting it, but Git and GitHub integration is practically seamless.

With the included GitHub package, you can create branches, stage and commit, push and pull, resolve merge conflicts, and view pull requests from within the Atom editor. If you work in a team of developers, you will love this functionality.

In terms of notable features, Atom offers:

  • Smart autocompletion to speed up your development process.

  • Customization and styling of the UI with CSS/Less.

  • The ability to add major features with HTML and JavaScript.

  • Multiple panes so you can compare and edit code across files.

  • Various UI and syntax themes to customize it to your preference.

The built-in package manager gives you access to thousands of open source packages that you can use to extend your apps and save time coding.

One particularly awesome package, Teletype, allows you to share your workspace with other developers.

This means that you can collaborate in real time on your project by inviting others to join in and make edits. As you move around your project, your collaborators follow you to the active tab.

Knowing some devs, this won't be everybody's cup of tea, but it certainly has many useful applications. For example, if you're stuck on some bit of code or bug that you need help with, you can find a freelancer online with expertise in that area and have them join in to help you resolve it while you learn their thought process.

In terms of its memory footprint, Atom is on the heavier side. If that's going to be an issue, you may want to opt for a more lightweight IDE.

2. Spyder

If you're into Python, there is a decent chance you want to do some type of statistical or analytical operations like financial data analysis or scientific projects that involve crunching numbers.

In case that is you, you certainly need to consider Spyder as your go-to IDE. It was designed specifically for scientists, engineers, and data analysts.

Spyder packs a surprising punch for a free IDE and has a great editor with a ton of features to help you stay efficient, including:

  • A function and class browser.

  • An outline explorer to help you navigate cells, functions, classes, and blocks.

  • Ability to execute the Python code by cell, line by line, by selection, or by file.

  • Real-time code introspection.

  • Automatic code completion.

  • Horizontal/vertical splitting.

  • Go-to-definition.

As you would expect, Spyder integrates with all the most prominent scientific and data analysis packages, such as:

  • Matplotlib

  • SciPy

  • NumPy

  • Pandas

  • Cython

  • IPython

  • SymPy

Of course, analyzing the data is just the start. The most important part is serving the results to the end user, which could be you, your client, or your manager.

To that end, Spyder's IPython console simulates a Jupyter Notebook and allows you to execute commands on-the-fly to interact with and visualize your data. You can test your code, explore the data, and run scripts in a separate environment without disrupting your primary session.

Better even, you can run as many IPython consoles as you need and execute the code in segments while rendering your plots as you go. These features all add up to increased ease of use and faster development and testing, which is always welcome.

Spyder's capabilities do not end there. Through its plugin system and API, you can further extend it as you wish.

The easiest way to get started with Spyder is to install the Anaconda Distribution, which is the most popular Python/R data science platform.

Anaconda gives you access to more than 7,500 Python/R data science packages that you can use to develop and train machine learning and deep learning models, and of course analyze data and visualize the results.

3. PyDev

PyDev is the open source Eclipse IDE that supports Python, Jython, and IronPython. If you already have Eclipse, you can install PyDev as a plugin.

It is a mature IDE (in development since 2003) and is packed full of features. This makes PyDev suitable for all purposes, personal or professional.

Some features you can expect out of the box include:

  • Django integration

  • Code completion with auto import

  • Type hinting

  • Code analysis

  • Go to definition

  • Refactoring

  • Debugger

  • Remote debugger

  • Interactive console

  • Unit test integration

  • Code coverage

  • PyLint integration

  • Find References

The comprehensive feature set makes PyDev a great option for larger and more complex projects.

Additionally, if you use Google App Engine (GAE) for your applications, PyDev will come in handy as it allows you to create GAE Python projects.

While the PyDev plugin is free, more advanced users can useLiClipse (the license for which costs $80), which is a set of plugins that enhance Eclipse with various usability improvements and other functionality.

4. Wing IDE

Wing Python IDE is a lightweight IDE that was designed solely for Python from the outset.

Its intelligent editor is brimming with useful functionality, from context-appropriate auto-completion and documentation, inline error detection and code quality analysis, to auto-editing, refactoring, customizable code snippets, and a ton of other timesaving functionality.

The powerful debugger allows you to debug multi-process and multi-threaded code launched from the IDE, hosted in a web framework, or run on a remote host.

Wing supports an amazing array of frameworks and project types, such as:

  • Scientific and Data Analysis : integrations with Matplotlib, pandas, SciPy, Jupyter, NumPy and other data analysis packages.

  • Web Development : support for various web development frameworks such as Django, Flask, web2py, Pyramid, Google App Engine, and others.

  • Animation and Games : you can use Wing to develop scripts for many modeling, rendering, and compositing applications that support Python, including Blender, Autodesk Maya, NUKE, and Source Filmmaker.

  • Desktop Apps : Wing supports PyQt, wxPython, Tkinter, and other desktop application UI frameworks.

It is little surprise, then, that organizations like NASA, Google, Nintendo, Intel, Apple, Facebook, and Microsoft use Wing for their Python development needs. If it's good enough for them, I say it is good enough for us!

Wing comes in three flavors: 101, Personal, and Pro:

  • Wing 101 : a stripped-down version, perfect for Python beginners.

  • Wing Personal : designed for students and hobbyists, it omits many of the features of the Pro version but has plenty of power and functionality to help you build your projects.

  • Wing Pro : the full IDE with all the features. The cost of the annual license is $179 per user, or you can purchase a perpetual license for Wing Pro 7 for $245 per user.

If you want to get the Pro version, there are certain concessions available.

Students and educators can get it free, while recent graduates enjoy 50% off the license.

Open source projects also qualify for the free license, whereas hobbyists, publicly funded non-profits, and startups less than three years old can get the annual and perpetual licenses for $69 and $95 per user, respectively. Pretty great value for such a powerful IDE if you ask me.

5. PyCharm

Jetbrains' PyCharm is a cross-platform IDE that works on Windows, macOS, and Linux.

There are two versions on offer, suited for different needs:

  • The Free Community version, which has all the basic functionality you need to start developing Python applications.

  • The Professional version ($89 for the first year, $71 for the second year, $53 for the third year and onwards)

Similar to Wing IDE, if you are a student, teacher, or an open source project, you can get PyCharm for free. Additionally, if you are a startup that has been in business less under 5 years, you may qualify for 50% off on up to 10 licenses.

Beyond the standard developer tools you would expect, such as a debugger, test runner, Python profiler, and terminal, PyCharm boasts a ton of features and integrations, including:

  • Web development : framework support for Django, Flask, Google App Engine, Pyramid, and web2py.

  • Scientific tools : IPython Notebook integration, along with integrations with popular scientific packages such as matplotlib and NumPy.

  • Cross-technology development : support for many popular languages and web technologies, including JavaScript, CoffeeScript, TypeScript, Cython, SQL, HTML/CSS, template languages, AngularJS, Node.js.

  • Intelligent python assistance : plenty of tools to help you stay productive with your development workflow such as rich navigation capabilities, smart code completion, code inspections, on-the-fly error highlighting and quick-fixes, and automated code refactoring.

  • Remote development : you can use PyCharm's tools to run, debug, tests, and deploy your app on remote servers and VMs.

When we consider the features of the free version, the cost of the paid version, and the overall functionality, this IDE comes in as the clear winner in my book.

PyCharm also contains an API that you can use to write your own custom Python plugins to extend the out of the box functionality, if you are so inclined.

Final Thoughts

In this article, I gave you an overview of the best Python IDEs for 2020 and beyond.

We started with free and open source options such as Atom, Spyder, and PyDev for Eclipse, and concluded our discussion with the paid options - Wing ID and PyCharm.

As you saw, free and open source does not mean low quality - quite the opposite, in fact. Opening up a project to community contributors around the world often ends up with powerful and highly extensible products.

Of course, in certain instances, going for the paid alternatives will make the most sense for you.

As always, it all depends on your project's purpose and maturity. If you're just getting your feet wet with Python or are working on a small-scale application, free tools should cover all of your bases.

When you need the flexibility and features of a more powerful IDE, you can always upgrade to IDEs such as Wing or PyCharm.

Happy coding!

If you enjoyed this article, be sure to join my Developer Monthly newsletter, where I send out the latest news from the world of Python and JavaScript:
Written on May 14, 2020