Python is the programming language of masses. If you also want to play around with Python, you either need a Python IDE or a Python code editor.
In this article, we will cover various Integrated development environments for Python coding. We will also provide tips and guidance to select the one suitable for your skill level.
Also, while many IDEs and editors work on all platforms, we will specify which editors are best for Mac, Windows, Linux including Ubuntu.
- Which Python IDE or Editor is Good for You?
- Key Requirements of a Good Editor or IDE
- Python IDEs for Varied Use Cases
- More of Python Editors than IDEs
- Final Thoughts
Our recommendation is that you spend a few minutes and go through the details below. You can narrow down a couple to try your hands on before finalizing one.
Which Python IDE or Editor is Good for You?
For a beginner, the right selection of an editor or IDE can aid learning, and for professionals, it can greatly influence productivity.
As an example, you can write Python code using a simple text editor like Notepad++, but that would neither be efficient nor easy.
You will also notice that the design of commercial coding environments is done keeping in mind large-scale projects which are typically managed by distributed teams. But is something like that required for a Python beginner? Not really!
Also, beginner programmers who are more inclined towards data science, Spyder Python, Thonny, and Atom are among the good options. Spyder is specifically designed as a Python IDE for data science.
Enterprises on the other hand, typically go for commercial IDEs like PyCharm, Sublime Text, and Wing. There are other options like Cloud9, Komodo Edit, and a few more. Many of these commercial IDEs also have free editions offered typically to students and beginners.
Let us dive deep and see which one surfaces as the best python code editor in terms of ease of use, features offered, community support, remote working, collaboration and is growing in popularity.
Key Requirements of a Good Editor or IDE
Full-featured coding environments offer many features as part of the core package or by using plugins and extensions. We will look at details of various features while we review individual IDEs. However, there are some bare minimum features that anyone would need to start python coding, like the ones below –
- Basic File and Code Management :At the minimum you need an editor that lets you save, reload and rename files, work with multiple files, edit, replace, replace all, replace in an entire folder, and a lot more.
- Code Execution: What differentiates a code editor from a simple text editor is the built-in compiler and interpreter. This also falls into the category of basic features required in the Python editor.
- Debugger with Stepping: Finding bugs is critical and one should be able to do it with ease. You need a good debugger that lets you add breakpoints to pause the execution and monitor variables and the state of the program.
- Auto Complete and Syntax Highlighting: Auto completing the code as you write, per Python specifications is the key for efficient code development. Also, an editor should highlight the variables, functions, comments, etc. as per the python syntax.
- Version Control and Other Third Party Integrations: It is always good to keep track of code changes and various version of the files. Most of the IDEs integrate with third party version control systems like GitHub, GitLab and perforce. Many editors also offer plugins to extend the functionality.
There are many more features, we will cover that in below sections along with the IDEs/Editors itself.
You may like to check out List of best Python books.
Python IDEs for Varied Use Cases
There is a thin line between features that the editor offers vs features that an IDE offers. Still, we have tried to segregate the two categories. This section covers multiple Python IDEs suitable for various development use cases and the experience level of the developer.
Python IDLE (Default Python IDE)
By default, you get IDLE when you install Python and that makes it a good option for beginners. One can get started with Python very quickly and without the need to install anything else but Python.
You might want to skip this and move on to PyCharm if you are looking for an enterprise-grade product.
Few notes on IDLE
- IDEL is built using Python itself (using Tkinter GUI toolkit) and works on Unix, Windows, macOS, and Linux distributions.
- Provides all key features required for basic programming, including Smart indents, auto code completion, code highlighting, appropriate colorizing of code input & program output, and errors.
- Provides the option to search across windows, replace, replace all, search and replace across multiple files, etc.
- Options for code debugging with breakpoints and stepping.
- Option to configure layout and windows as per the need including show/hide windows, change fonts size/color, keybindings, theme settings, etc.
- Also brings in many default python extensions and much more.
While this is a great option for students and beginners, enterprises and experienced developers generally do not like IDLE as it doesnt offer as many features as VSTS, Pycharm, Wing, or Pydev.
Python IDLE Download Link: Download Idle
PyCharm (Best Python IDE – Overall, Paid)
PyCharm is arguably the best Python IDE and used by many enterprises. It is so popular among professionals that companies like Twitter, Telefonica, eBay, Spotify, Groupon, and many others are already using it for development in Python.
JetBrains is the company that created PyCharm. They are in the business of making code editors and IDEs for the last 20 years and are doing it well.
While we are talking about the paid version, PyCharm also offers a free community edition for students, learners, and others, mainly to support free education.
Key notes on PyCharm Features
- PyCharm is lightning fast and packed with features like intelligent code completion, intuitive user interface, Graphical debugging support, dynamic error check, code refactoring, and a lot more.
- It is one of the best windows python IDE and is provides the same developer experience on multiple platforms including Ubuntu and macOS X.
- Pycharm also provides APIs support using which you can develop plugins and extend the functionality of the IDE itself.
- It provides out of the box support for many data science and other scientific python packages including Jupyter Notebook, Anaconda, matplotlib, and NumPy.
- Pycharm also provides many collaboration features like text, audio, and video chats, CI/CD tool integration & features for remote development by large teams.
- Pycharm also supports development with many web and app frameworks like Django, Pyramid, Flask, React, Angular, Vuejs, and many others from a single user interface.
- And the list is long. You can read more about PyCharm at – jetbrains.com/pycharm.
Moreover, from a support perspective, Pycharm offers professional support and training to get teams going with the development, in no time. It is a perfect Rapid application development tool for Python.
You can download the community Edition (free of cost) of PyCharm Python IDE here at – Download Pycharm community edition.
Spyder Python (Python IDE for Data Science)
Talking about open source and free editors, Spyder is one of the best editors for data science and scientific python development in general. Like IDLE, this one is also built with Python itself and is available to use under MIT license, for free.
Few notes about Spyder Features
- Spyder comes packed with Anaconda package as part of default distribution. It also seamlessly integrates with popular scientific libraries like Matplotlib, NumPy and Scipy.
- You get almost all the basic features needed in a Python editor, like code completion, find/replace, find/replace among files, syntax highlighting, inbuilt document browser, debugger, layout & theme settings, color coding the fonts, and a lot more.
- Spyder also provides an interactive console, variable explorer, file explorer, multilingual editor interface, Ipython Console, Debugger, and a lot more.
In a nutshell, Spyder Python provides everything that a beginner data science student would need for free. You can download it as your Ubuntu Python IDE for data science, for windows or for Mac.
You can read more about Spyder Python IDE here at – github.com/spyder-ide/spyder.
Pydev with Eclipse – Feature Rich IDE (Free Tier)
Pydev ranks high in terms of usage statistics and developer adoption. It is also free of cost but brings in enterprise-grade features for development in Python. Pydev actually is an Eclipse plugin that brings Python to the Eclipse ecosystem.
Many developers have used Eclipse in the past for Java development, they still do. If you are coming from a Java background or want to work on both Java and Python, then Pydev with Eclipse is a great option.
I would not recommend Eclipse for absolute beginners since it is not built grounds up for Python. You need to install the right plugins, do the right configuration, and set up to make it work in a perfect way for Python.
Key notes on Features –
- Since Pydev works on Eclipse which has a huge ecosystem of plugins, you can install plugins and bring in any feature you can think of. It is just a matter of configuration and selection of the right set of plugins.
- To name a few, you get integrated python debugging, smart indent, multilingual user interface, code analysis, Django integration for web development, intelligent code completion, code folding, UML support, error mark up, unit testing, documentation viewer, themes, layouts setup, and a lot more.
- You can also use Pydev for full stack Python development in Django, Flask, web2py along with JS frameworks like React, Vue, or Angular.
- With Eclipse and Pydev combo, you get the right tools to work on data science projects as well as interact with databases, right from within the user interface of Eclipse.
- Again, the list is long. Check out more about Pydev at the official website here – pydev.org
Apart from Python, Pydev IDE supports Jython, IronPython, Cython, and many other Python Compilers.
You can download Pydev here at – Download Pydev Eclipse for Python.
PTVS (Visual Studio) – Best Python IDE for Windows
Like how Pydev brings Python to Eclipse, PTVS brings Python to Visual studio. You can read PTVS as Python Tools for Visual Studio. It is also available free of cost, backed by Microsoft itself, and gets continuous upgrades for additional features.
As of today, I would easily rank visual studio with PTVS as one of the best Python IDEs for Windows in the free tier. PTVS with Visual Studio is arguably the only Python editor that is liked both by beginners as well as experienced developers.
Key notes on features –
- You get all basic features like code editing, intelligent code completion, profiling, and easy browsing. You also get support for CPython & Ipython.
- Web development support with Django and other JS frameworks like React, Vue and Angular.
- Also, since it comes from the house of Microsoft it supports mixed Python/C++ debugging and development.
Looking at the popularity of PTVS, Microsoft has included PTVS setup as part of the Visual Studio installer itself. During VS installation, you can simply select Python or data science workload and make visual Studio a full-featured Python Integrated Development Environment.
Know more about PTVS at – PTVS Python IDE.
The wing is comparable to PyCharm in many ways including license fees and features offered. The Wing IDE is a product from the house of a company named Wingware. The best part is that it was built grounds up for Python developers.
Many large enterprises including the likes of NASA, Intel, Siemens, Facebook, Novartis, and Nintendo have Wing as part of their development tools stack.
Key notes on Wind IDE features and capabilities –
- Very enhanced debugger, probably best out there with support for remote debugging, multi-process debugging, threaded code debugging, code stepping, breakpoints auto child process spawning, and a lot more.
- Easy to use with code and version management tools like Git, perforce, Bazaar, Subversion, Mercurial, and many more.
- Web development support with Django, Pyramid, ReactJs, Flask, web2py, and more. The debugging capabilities extend to the web2py and Django templates.
- Data science and scientific computing support with SciPy, NumPy, Pandas, Matplotlib, Jupyter, and more.
- You can even use Wing and its debugger for embedded instances of Python in Blender 3D scripts, Autodesk Maya, and few other tools. Pygame and other Python game engines are not that popular, but Wing supports those too.
- You can also develop desktop apps using PyQt, Tkinter, wxPython, and many other libraries, from within the wing user interface itself.
You can install Wing IDE on Windows, OS X, and Linux. You get three options, a basic free version, a personal edition, and a feature-rich professional edition.
You can read more about Wing IDE here at – Wing IDE from Wingware.
More of Python Editors than IDEs
As mentioned earlier, there is a think line between an editor and an IDE. This section covers python coding environments that look and work more like text editors with Python support. While I say so, you still get many plugins and extensions to transform the simple text editors to work as a full-featured IDE.
VI / VIM (Best Free Python Editor)
VIM is a general-purpose text editor and brings in many features to write code efficiently. It is also open source and free of cost under the GPL license.
Since it is a generic code editor, you need to do the right configuration to do efficient Python development. For that reason, initial setup and configuration might take some time, but if done correctly, it transforms into an effective Python code editor.
Vim is a very lightweight editor and allows you to configure modules incrementally as per the need. Developers who love to work only on keyboards swear by the efficiency they get by coding in VIM.
If you are looking for an Ubuntu Python Editor, then this would easily rank among the top. It also comes as a default text editor with many Unix and Mac OS X based systems.
You can read more about VIM here at – Vim.org.
Sublime Text is also a very popular text editor. A Google engineer created Sublime with an aspiration to provide a lightweight and modular code editor to the developers.
While you can start writing Python code in the default editor, it is worth spending some time to set up and configure Sublime for Python for efficient and fast development.
One of the effective methods to transform Sublime Text to Python editor is by installing the Anaconda package. Anaconda brings in many basic features like auto-completion, Code linting PyFlakes with PEP 8 or PyLint, go to definition feature, documentation quick view, and a lot more.
If you are working with the Django framework, then Djaneiro is the sublime plugin for that. It brings in keyword highlighting and Django templating support.
Apart from the above, there are tons of other themes and plugins like FTPSync, Gitgutter, Emmet support, and a lot more to turn Sublime Text into a fully-featured Sublime Python IDE.
You can read more here – https://www.sublimetext.com/
ATOM (Baby of GitHub Community)
Atom is developed and maintained by the GitHub community and available for free under MIT license, for both personal as well as commercial use.
The editor is open source and has a large community that regularly updates Atom and associated plugins, to support the latest features and specifications of many programming languages including Python.
You can install Atom on Windows, Fedora, ubuntu Linux Mac OS X a well as on Windows. For many, Atom is the go-to Ubuntu Python IDE.
You can read more about Atom here at – atom.io.
Thonny (Credits: University of Tartu)
Thonny is a new entrant in the market of Python IDEs and is a good option for students. One can simply download Thonny, install it and start coding in Python. You do not even need to install or setup Python separately.
Key feature highlights of Thonny
- Thonny is simple yet provides all the basic features for Python programming, including syntax highlighting, stepping through expressions, checking variable values during runtime, explains scopes, code completion, and a lot more.
- You also get a beginner’s friendly System shell to play around with the command line and work with packages.
Thonny was developed at the Institute of Computer Science of the University of Tartu, in Estonia. As of today, it is also supported by Cybernetica AS.
CS students in many universities use Thonny for learning Python and programming in general. You can download Thonny Python IDE for Mac or Windows and even Linux.
Official Website: http://thonny.org/
Emacs (Good Editor for Ubuntu)
Emacs is a lightweight, extensible, and customizable text editor. You can use it for programming in multiple languages including Python. Emacs is a GNU text editor, you can get it for free for both personal as well as commercial use.
Like Vim, you need to configure Emacs also to start coding efficiently in Python. You get some out of the box support with Python-mode that ships with Emacs.
From a platform support perspective. You get GNU Emacs with most GNU/Linux distributions and BSDs. You can also download Emacs for Windows and macOS.
Official Website: GNU Emacs
This brings us to the end of Python editor and IDE reviews. While most of the IDEs offer similar features, they all have their own pros and cons. Beginners specifically should stick to a simple python editor like Thonny, IDLE, PyCharm community edition, or even Visual Studio.
It is always good to list down your objective, like whether you want to get into full-stack development, data science, or get into enterprise-grade development. Then check the support provided by various tools, try out a few, and then decide. Cheers!
You might also like