The best Python IDE will allow you to simply and easily run and edit scripts in the Python programming language.
An Integrated Development Environment (IDE) allows you to run programming code written in different programming languages, and having an IDE to run Python is important due to Python's increasingly popular use across a range of computing and scientific applications, underlined by the rise of analytics and business intelligence.
While very simple programs don't require specialist tools, once past that stage some form of IDE becomes necessary, but there are a number of different types and some are better at supporting some languages than others. Additionally, some IDE's have limits on how much code you can use, though are often free to compensate, while paid-for IDE's allow for much more freedom.
There is a surprising amount of choice out there, and the open source mentality that underpins a lot of the coding community also applies here, so there are quite a few free tools available. As programming is an increasingly important business sector, especially for cloud services as well as general business applications, there are also paid-for tools that aim to offer more.
Whichever Python IDE you choose to run with, at a minimum you'll want an application that: does syntax highlighting, code-folding and bracket-matching, has some awareness of the constituent source files of a project, and facilitates running the code (or part thereof). More advanced features might include code suggestions, a debugger, and integration with online repositories.
In this article we've picked five of our favorite IDEs, which are efforts that we feel give a good overview of what's on offer.
- Check out the best online courses for learning Python.
Best IDEs for Python at a glance:
Atom describes itself as a "hackable text editor for the 21st Century". It's maintained by social coding megalith GitHub, so as you'd expect it can do pretty much anything you can imagine. And if it can't, then someone's almost certainly working on a plugin to address that.
Atom has its own comprehensive package manager, and a huge community working on packages for it. As well as built-in Git and GitHub integration, Atom allows you to collaborate on coding projects in real-time via the Teletype package. Several thousand other packages are available, but Python coders looking for a more efficient workflow would do well to seek out a script package.
This offering is based on the electron framework, so Atom is cross-platform, but also has a not inconsiderable memory footprint. Coders who prefer their apps to be lightweight will balk at the 400MB (including its dependencies) install footprint and should look elsewhere. But even on a modest system it runs fine and all the functionality Atom provides means that it’s well worth the space investment.
Despite all its features, Atom has a clean interface and is much more beginner-friendly than you'd expect. The project view is helpful once you start to dabble with bigger projects and you are free to split the panels of the interface to suit your fancy.
It's easy to overlook IDLE – Python's very own bespoke Integrated Development Environment. IDLE (named after Monty Python's Eric Idle) is fairly minimal compared to some of the other offerings around, but it has everything you need and certainly won't get in your way.
It’s coded in Python and uses the lightweight tkinter toolkit to draw its GUI. Starting IDLE will open a Python shell, just as you get when starting Python from the terminal. You can play around with code snippets here, with the bonus that keywords and output will be nicely colored.
Moving on from here you can open a new window to start coding proper. Your code will be appropriately highlighted and automatically indented, with a configurable indent level. IDLE supports using spaces or tabs for indentation, and can automagically convert between the two – plus it can indent multiple lines at a time.
IDLE lacks any project management facilities, but that’s no problem if your project spans only a handful of files. It has a powerful debugger which allows single-stepping through the code or over-stepping through each high level function. The debugger shows the call stack as well as the state of local and global variables.
Once the nemesis of FOSS software, Microsoft has, under the stewardship of Satya Nadella, taken a much friendlier stance towards all things open source. The company may not be about to release the source code to Visual Studio, but in 2015 it did release a source code editor, Visual Studio Code – or Code for short – and open sourced the core of it. Code has since become rather popular among developers, and it's a fine choice for your Python projects too, once you've installed the Python extension, that is.
Code has its own debugger, supports linting, and has integration with all manner of source control tools. It has a built-in terminal too, and a well-stocked extensions marketplace (don't worry, they're free). It can also run and debug your project's unit tests through the unittest, pytest or nose frameworks.
If all this sounds a little too much, it also has a minimalist 'zen mode' which shows you only the file you're working on, hiding not just Code's interface, but the rest of your desktop too.
Code is highly configurable, and it has a settings panel that will delight those of a certain mind-set – each section unfolds the corresponding section of the settings.json file, all nicely highlighted of course.
Like Atom, code is an Electron app, so is cross-platform and a little bulky. Unlike Atom it has support for Intellisense, Microsoft's own take on code completion. For Python, as well as just suggesting completions, this also provides on-the-fly popups showing the documentation for classes and methods.
This powerful cross-platform IDE – which, like IDLE, is named after Eric Idle – is written in Python and uses the Qt library. Though Python is its focus, eric (lowercase is the intended spelling) has excellent support for Ruby, and other languages too. It supports the bread and butter tasks we've come to expect: code folding, code completion, brace matching.
But there's so much more that you'll need to use its built-in (and automated) TODO list generation to keep track. It has an integrated class browser and powerful debugger, and thanks to being built-in Qt supports building GUIs via Qt Designer. The initial configuration screen may seem daunting, but most of it can be put off till later.
While the interface does look busy, there's no reason you can't use eric as a simple code (or even plaintext) editor. But it really comes into its own for more serious coding – there's even a built-in hex editor, SQL browser and icon designer. It supports unit tests and can debug both multithreaded and multiprocessing programs, which as anyone who dabbles in such things will testify, generate the worst kind of bugs.
It supports Mercurial and SVN version control natively, and Git support is available through a plugin. Like Code, there's support for real-time collaboration on code. In short, if you want a feature-rich Python powerhouse, eric is for you.
PyDev is the Python IDE that runs in Eclipse, which is already a very popular open source IDE for various programming languages, and is well-supported with a wide range of plugins to help add features.
PyDev itself comes with a range of useful coding features, such as code auto-completion, debugging, coding templates and analysis, as well as a browser for testing code.
There's also an integration option to work with the Django Python web framework, as well as offering support for Jython and IronPython development.
If there's a downside, it's that there's so much coding support made available that some users might find it somewhat bloated. However, it remains one of if not the most popular of the open source Python IDE's for exactly the same reason.
As it's open source, it's free to use, and easily provides enough features to support basic to intermediate programming. For more advanced programming, LiClipse is a paid-for tier that runs with Eclipse to offer more customized options.
Thonny is the least ‘developer-centric’ of all the IDEs we’ve highlighted here, but that doesn't mean it's any less powerful. It's developed at the University of Tartu in Estonia, and is itself written in Python. It features a powerful debugger that's great for learning the ins and outs of coding without worrying about how breakpoints work.
The debugger can show you the state of variables as the program runs. It lets you take small or large steps through the program, which is great if you’re tracking down hard to find bugs. This is much better practice than – as beginners and seasoned coders alike are occasionally tempted to do – peppering your code with messy print() statements.
Thonny will automatically indent as you type, which is helpful for anyone new to Python since the language uses indentation to delineate functions, loops, classes, clauses, etc. It will autocomplete your code and provide bracket/parentheses matching. It will also helpfully highlight any syntax errors.
It would be ideal for beginners, but for the fact it's a little tricky to install if you're unfamiliar with Python packages and in particular pip (a package manager for Python). That said, it is included as standard in new versions of Raspbian and is well-suited to Raspberry Pi projects. It's just a shame that other distros don't include Thonny in their repos.
More Python IDEs
Wing IDE 101 is a simple and free Python IDE intended to help new programmers get used to coding in Python. There are a number of resources to help with training, and Wing IDE 101 is available for download for Windows, macOS, and Linux.
CodeSkulptor is a browser-based IDE for Python. The aim is to provide an easy to use platform for people new to Python to practice their programming skills. This makes it especially ideal for groups to use, as it means they will be using the same version and code editor, and this is made all the more helpful by users not having to download and install software directly.
PyScripter is an open source IDE that includes many of the basic required features, such as a syntax highlighting editor, integrated Python interpreter and debugger, project and file explorer, as well as the ability to customize and run a Python script externally.
PyCharm is a Python IDE for professional developers provided by JetBrains, so it's a paid-for program. There's an impressive toolset included, such as intelligent assistance, web development frameworks, scientific tools, cross-technology development, and a huge collection of developer tools included.
- We’ve also chosen the best laptop for programming.