Best Python IDEs And Code Editors

January 14, 2021

Introduction

When programming in Python, both IDEs and Code Editors are useful. Knowing the difference between all the available options and when to use them is crucial for efficient development.

This article lists the best Python IDEs and code editors and defines the difference between IDEs and Code Editors.

Best Python IDEs and Code Editors

Prerequisites

  • Adequate operating system
  • Python installed

Note: Most of the listed IDEs and code editors install Python automatically. If you need to install it yourself, follow one of our guides:

IDE vs Code Editor

An IDE is like a toolbox. All the tools you might need are already there. Once you install it, you should be good to go for your project.

A Code Editor is like a powerful tool. You won’t have everything you need from the get-go, but you can add things along the way to make it more functional.

Best Python IDEs

Each IDE must have:

  • A code editor.
  • A debugger.
  • Build automation tools.

Python IDEs often have a built-in interpreter or compiler. They also have various tools for simplifying project development. However, the more functionality IDEs have, the bigger and slower they get.

1. Visual Studio

Supported Operating Systems: Windows

Python is fully supported in Visual Studio by default since 2017. You can select it during the installation process by choosing the Python or Data Science workload.

Visual Studio installation page with Pyton and Data Science options.

If you are using a version of Visual Studio released before 2017, make it into a Python IDE with the Python Tools for Visual Studio (PTVS) plugin.

Visual Studio and the PTVS plugin are both created by Microsoft. Visual Studio has a free and paid version. PTVS is an open-source plugin and completely free.

Pros:

  • If you are already using Visual Studio, adding PTVS is easy.
  • Offers IntelliSense for easy code editing.
  • It has interactive debugging, profiling, unit test integration, and support for IPython.
  • You can add packs with templates for web development and machine learning.

Cons:

  • Not a native Python IDE.
  • Visual Studio takes up a lot of memory.
  • The number of options will be intimidating, even with the free version.
  • Visual Studio is not available cross-platform.

2. PyDev

Supported Operating Systems: Linux, macOS, Windows

PyDev is a Python IDE for Eclipse created by IBM. The Eclipse Foundation currently develops it, and PyDev is a third-party plugin for it. Both are open-source and free to use.

Eclipse IDE with Pydev with the official PyDev logo on the bottom

Pros:

  • If you are a native in Eclipse, adding PyDev should not be any problem at all.
  • Code completion with auto import, type hinting, and code analysis through PyLint.
  • PyDev has interactive and remote debugging, unit test integration.
  • Plugins are available for source control and code management.
  • Integrated Google App Engine and Django support are available.

Cons:

  • Not a native Python IDE.
  • PyDev takes up too much memory if you are only using it for Python.
  • It is a very challenging environment for new programmers and users.

3. PyCharm

Supported Operating Systems: Linux, macOS, Windows

PyCharm is a program made by JetBrains. It is a full-featured IDE specifically made for Python. PyCharm is an excellent tool for full-stack developers.

There is a paid and a free, open-source version.

PyCharm IDE with the official PyCharm logo in the center

Pros:

  • A native Python IDE. Out of the box, direct Python development support with a fantastic community.
  • Smart assistance and intelligent code completion.
  • There are remote development tools for debugging.
  • Docker and Vagrant integration is available.
  • Support for web development frameworks like Flask and Django.
  • There are scientific packages, Anaconda, and IPython notebook support.

Cons:

  • Slow to load and very bulky.
  • The most beneficial features are available in the paid version, and it is costly.
  • For importing existing projects, you need to tweak the default settings.
  • Not suitable for beginners.

4. Spyder

Supported Operating Systems: Linux, macOS, Windows

Spyder is a Python IDE made for data scientists. It is written in Python by scientific Python developers.

Spyder has a helpful community. There are extensive built-in tools for scientific computing. It is entirely open-source and free to use.

Spyder IDE with the official logo in the center

Pros:

  • If you are a data scientist using Anaconda, Spyder is simple to install and use.
  • It is a multi-language editor with code analysis tools, autocompletion, and a function-class browser.
  • The Python scientific stack (Numpy, Scipy, Pandas, etc) is readily available.
  • It features a variable explorer for interactive modification and analysis.
  • Spyder includes interactive plotting tools.
  • There are plugins for notebook, terminal, and unit testing environments.

Cons:

  • It is a tool for data science, not a general-purpose IDE.
  • No support for web development.
  • Too plain to work with if you are an experienced Python developer.

5. Thonny

Supported Operating Systems: Linux, macOS, Windows

Thonny is a new Python-specific IDE made with beginners in mind. It is straightforward to install and already comes with Python built-in.

Note: Not sure if you have Python installed? When you check the Python version, the output will give you the answer.

It is the default IDE for Python on Raspbian. Thonny is free to use. You can install it using pip or through the system package manager.

Thonny IDE with the official logo in the center

Pros:

  • Excellent for beginners and as an educational tool.
  • The interface is minimalistic and memory efficient.
  • It features step-by-step evaluation, autocompletion, and variable scope highlighting.
  • Separate windows for function calls.
  • Support for running files remotely via SSH.

Cons:

  • Basic functionalities. Thonny is not as advanced as some other IDEs.
  • It lacks many options for scientific research and web development.
  • Because it is new, a lot of issues exist.
  • Support is slow, and fixes take time.

6. IDLE

Supported Operating Systems: Linux, macOS (mostly), Windows

IDLE comes by default with Python’s installation. It is written in Python and has been around for a long time. The inventor of Python, Guido Von Rossum, made IDLE.

Note: IDLE stands for Integrated Development Environment. It might also be a tribute to Eric Idle from Monty Python.

IDLE IDE with the official Python logo in the center

Pros:

  • IDLE is a great learning environment for beginners with all the functionalities needed.
  • It has a multi-window code editor and an option to search across all windows.
  • There is a built-in IDLE compiler for running code.
  • Great for lightweight projects.

Cons:

  • IDLE is not robust enough to run large projects.
  • It lacks important features that IDEs have, such as version control and bracket matching.
  • Not intuitive enough for beginners.
  • Some options do not work on macOS.

7. Wing

Supported Operating Systems: Linux, macOS, Windows

Wing is an IDE designed for Python. It is lightweight and fully featured at the same time. There are three different versions: professional, personal, and educational. The last two are entirely free to use.

Wing IDE with the official logo in the center

Pros:

  • Wing is an intelligent editor with many features.
  • It can emulate other IDEs and editors.
  • Wing has powerful debugging and unit testing tools.
  • Quickly configurable for remote development.
  • Support for web development frameworks.
  • There are tools for project management and version control.

Cons:

  • Personal and educational versions lack many options.
  • The professional version is expensive.
  • Not many plugins are available.
  • Small support community.
  • Slow development when compared with other IDEs.

8. Eric Python

Supported Operating Systems: Linux, macOS, Windows

Eric Python is a fully-featured IDE written in Python. One of its key elements is the Scintilla editor control. There are many plugins available to extend the IDE experience.

Most Linux distributions have Eric Python in their official repositories. It is open-source and free to use.

Eric Python IDE with the official logo in the center

Pros:

  • Python is the primary language for it.
  • It can run multiple editors at the same time.
  • The debugger is efficient and already built-in.
  • The class browser gives a simple overview of classes and methods in a project.
  • It has lots of features for version control and project management.

Cons:

  • The interface is complex with no logical structure.
  • It can be mind-boggling, even for advanced programmers.
  • The autocomplete is not very good. You need third-party plugins for a better experience.
  • Multiple plugins will cause issues with performance.

9. Jupyter

Supported Operating Systems: Linux, macOS, Windows

Jupyter is a web-based notebook environment that stems from the IPython project. It is a favorite among data scientists and educators alike. Jupyter is open-source and free to use.

Note: Notebook environments are used for literal WYSIWYG programming. Code, calculations, images and outputs are embedded and formatted into one document.

Jupyter IDE with a notebook on the left, code on the right and the official logo in the center

Pros:

  • Excellent for prototyping and testing scientific projects.
  • The interactive output has cells that can be code, HTML, images, videos, or LaTeX blocks.
  • It is very visually appealing, organized, and great for presentations.
  • There is server-side hosting available for sensitive data.
  • Jupyter includes big data integration.

Cons:

  • Writing in cells gives dangerous programming habits.
  • Big projects are hard to keep track of and maintain.
  • Version control tools are not available by default.
  • It is not suitable for collaboration.

Note: Refer to our tutorial and find out what are the best Java IDEs.

Best Python Code Editors

Code editors are vital tools for a programmer. They look and feel like text editors, but they have syntax highlighting. They are very lightweight and can be made more potent with plugins.

1. Visual Studio Code

Supported Operating Systems: Linux, macOS, Windows

Visual Studio Code, or VS code, is a fully featured code editor. Lightweight and small, you can configure it for most programming tasks.

Visual Studio Code with editor on the left, notebook environment on the right and the official logo in the center

It is not a Python-native editor, but full Python support is available. You can easily add Python support through the marketplace. VS Code is free and open-source.

Note: Visual Studio Code should not be confused with Visual Studio.

Pros:

  • Integrated Intellisense and smart code completion are built-in.
  • It has an integrated terminal available for quick testing.
  • Lots of extensions are available, and it is highly customizable.
  • VS Code covers a wide variety of programming languages and technologies.
  • Updates are frequent.

Cons:

  • Not a native Python editor.
  • The search feature is limited.
  • Having too many extensions can make it slow. Some features are conflicting.
  • You need to save the code before running it.

2. Sublime Text

Created by a Google engineer, Sublime Text is a popular text editor. It has excellent community support and plenty of packages available to extend it. Sublime Text has a free and paid version.

Sublime Text editor with the official Sublime Text logo in the center

Pros:

  • Low memory usage.
  • Goto functions make searching through code easier.
  • Sublime Text is appealing to new and experienced coders alike.
  • There is multiline editing.

Cons:

  • Installing Python packages is confusing, especially for new users.
  • It continually prompts you to purchase the full version.
  • Python debugging and code execution is not directly supported.
  • It lacks an integrated terminal.
  • Some functionalities are hard to find.

3. Atom

Supported Operating Systems: Linux, macOS, Windows

Atom is the “hackable text editor of the 21st century” developed by GitHub. It is customizable and extendible with packages. Atom is free to use and open-source.

Atom editor with the official logo in the center

Pros:

  • Atom has a great package library ecosystem. It is built-in and easy to use.
  • It offers smart code autocompletion for various languages.
  • Multi-window code editing is available.
  • Git integration for version control.

Cons:

  • The development of plugins has significantly slowed down since Microsoft took over GitHub. Many packages are not maintained anymore.
  • Inefficient memory management once you have lots of packages.
  • The number of features and the configuration needed make it hard to use for a complete beginner.

4. Vi/Vim

Supported Operating Systems: Linux, macOS, Windows

Formerly known as Vi, Vim is one of the oldest editors. It has a command-line interface, and it runs through the terminal. The central concept behind it is that a programmer can access everything through keyboard commands.

Note:  Vim is not included in some distributions of Linux. If you need to install it, feel free to follow one of our guides:

Vim editor with the official logo in the center

Pros:

  • Highly customizable and flexible. Decades of plugins.
  • Very lightweight and resource-efficient.
  • It comes built into terminals of macOS and most Linux distributions.
  • There is an increase in productivity due to keyboard shortcuts.

Cons:

  • Windows version does not work well and often breaks.
  • The learning curve is steep, and the keyboard shortcuts are non-intuitive.
  • It is not beginner-friendly.
  • You automatically enlist to the Editor war with Emacs users.

5. GNU/Emacs

Supported Operating Systems: Linux, macOS, Windows

Known as GNUMACS, it is one of the oldest editors. It is considered one of the most efficient editors available. The very extensible and self-documenting editor is famous for supporting nearly all languages, including human languages.

The original author is Richard Stallman, and the GNU project currently develops it. GNU is a central component of the free software movement and one of the oldest ones still maintained.

GNU/Emacs editor with the official Emacs logo in the center

Pros:

  • Lightweight and memory efficient. Great for large-scale projects.
  • Fully customizable to do almost anything with an extensive library of extensions.
  • Emacs has a relatively easy learning curve for a complicated editor.
  • Excellent community support with lots of resources online.

Cons:

  • GNU is old and not very easy to pick up and learn. The keyboard shortcuts are not standard.
  • Customizing and extending is done in Emacs Lisp.
  • Finding all the features can take some time and research.
  • You automatically enlist to the Editor war with Vi/Vim users.

How to Choose?

An IDE has all the features of a Code Editor, but a Code Editor does not have all IDE features.

The right choice depends on project complexity and type, your development skills, and the size of the team. Based on those factors, we suggest the following Python IDEs and Code Editors:

Beginners:

  • Thonny
  • IDLE

Advanced developers:

  • Eric Python
  • Atom
  • Vi/Vim
  • GNU/Emacs

Scientific computing projects:

  • Spyder
  • Jupyter

Web development projects:

  • PyDev
  • Visual Studio
  • Visual Studio Code

Organizations and large teams:

  • PyCharm
  • Wing
  • Sublime Text

Conclusion

This guide should give you a good idea of the difference between IDEs and Code Editors and which option is most suitable for your use case.

If you are new to Python, we suggest checking out our guide on Python Data Types to get started with learning and developing applications in Python.

Was this article helpful?
YesNo
Milica Dancuk
Milica Dancuk is a technical writer at phoenixNAP who is passionate about programming. Her background in Electrical Engineering and Computing combined with her teaching experience give her the ability to easily explain complex technical concepts through her content.
Next you should read
Vim Commands Cheat Sheet
July 22, 2020

Vim is an open-source text editor found in most Linux distributions. This article lists all the commonly used...
Read more
How to Check Python Version in Linux, Mac, & Windows
October 1, 2019

Python is a popular programming language with different versions organized by release date. Certain...
Read more
22 Best Linux Text Editors for Programming & Coding
September 3, 2019

A text editor is an application that lets you type text. All Linux distributions come with built-in editors,...
Read more
How to Install and Use Nano Text Editor Commands in Linux
April 12, 2019

Nano is a simple, modeless, WYSIWYG command-line text editor included in most Linux installations...
Read more