A code editor is a tool that is used to write and edit code. They are usually lightweight and can be great for learning. However, once your program gets larger, you need to test and debug your code, that's where IDEs come in.
An IDE (Integrated Development Environment) understand your code much better than a text editor. It usually provides features such as build automation, code linting, testing and debugging. This can significantly speed up your work. The downside is that IDEs can be complicated to use.
How to choose a Python IDE/code editor that serves your purpose?
To make this task easier, we have created this guide. All tools mentioned in this guide are available on Windows, Linux, and MacOS
I want a Python IDE/code editor for:
Show Python IDEs Programiz recommend:
When you install Python, IDLE is also installed by default. This makes it easy to get started in Python. Its major features include Python shell window(interactive interpreter), auto-completion, syntax highlighting, smart indentation, and a basic integrated debugger.
IDLE is a decent IDE for learning as it's lightweight and simple to use. However, it's not for optimum for larger projects.
Learn more: IDLE features
Sublime text is a popular code editor that supports many languages including Python. It's fast, highly customizable and has a huge community.
It has basic built-in support for Python when you install it. However, you can install packages such as debugging, auto-completion, code linting etc. There are also various packages for scientific development, Django, Flask and so on. Basically, you can customize Sublime text to create a full-fledged Python development environment as per your need.
You can download and use evaluate Sublime text for an indefinite period of time. However, you will occasionally get a pop-up stating "you need to purchase a license for continued use".
Atom is an open-source code editor developed by Github that can be used for Python development (similar Sublime text).
Its features are also similar to Sublime Text. Atom is highly customizable. You can install packages as per your need. Some of the commonly used packages in Atom for Python development are: autocomplete-python, linter-flake8, python-debugger etc.
Personally speaking, I prefer Atom to Sublime text for Python development.
Thonny is a Python dedicated IDE that comes with Python 3 built-in. Once you install it, you can start writing Python code.
Thonny is intended for beginners. The user interface is kept simple so that beginners will find it easy to get started.
Though Thonny is intended for beginners, it has several useful features that also makes it a good IDE for full-fetched Python development. Some of its features are syntax error highlighting, debugger, code completion, step through expression evaluation etc.
Quick Tip: If you are a beginner, go to View and click variables. This will open variables view that contains your program's variable list and their values.
Learn more: Thonny Official site
PyCharm is an IDE for professional developers. It is created by JetBrains, a company known for creating great software development tools.
There are two versions of PyCharm:
PyCharm provides all major features that a good IDE should provide: code completion, code inspections, error-highlighting and fixes, debugging, version control system and code refactoring. All these features come out of the box.
Personally speaking, PyCharm is my favorite IDE for Python development.
The only major complaint I have heard about PyCharm is that it's resource intensive. If you have a computer with a small amount of RAM (usually less than 4 GB), your computer may lag.
Visual Studio Code (VS Code) is a free and open-source IDE created by Microsoft that can be used for Python development.
You can add extensions to create a Python development environment as per your need in VS code. It provides features such as intelligent code completion, linting for potential errors, debugging, unit testing and so on.
VS Code is lightweight and packed with powerful features. This is the reason why it becoming popular among Python developers.
Vim is a text editor pre-installed in MacOS and UNIX systems. For Windows, you need to download it.
Some developers absolutely adore Vim, its keyboard shortcuts, and extendibility whereas, some just hate it.
If you already know how to use Vim, it can be a good tool for Python development. If not, you need to invest time learning Vim and its commands before you can use it for Python.
You can add plugins for syntax highlighting, code completion, debugging, refactoring etc. to Vim and use it as a Python IDE.
Learn more: Vim for Python development
Spyder is an open-source IDE usually used for scientific development.
The easiest way to get up and running up with Spyder is by installing Anaconda distribution. If you don't know, Anaconda is a popular distribution for data science and machine learning. The Anaconda distribution includes hundreds of packages including NumPy, Pandas, scikit-learn, matplotlib and so on.
Spyder has some great features such as autocompletion, debugging and iPython shell. However, it lacks in features compared to PyCharm.
Learn more: Spyder Official site
If you want to start writing Python code without investing time installing Python and setting up a development environment, you can use repl.it. The site provides online IDE for many languages including Python. You just need the internet and a browser to get started.
repl.it is fast and easy to use. It's the best online compiler I have experienced. By the way, repl.it is free if you do not need private repls.
Learn more: repl.it
Recommended Reading: What IDE to use for Python?