This page is a curated list of tools that we regularly recommend in the community. If you have a suggestion for something to add to this page, please create an issue in our meta repo, and we'll consider adding it.


Fully-integrated development environments for serious Python work.


The very best Python IDE, with a wealth of advanced features and convenience functions.


The Scientific Python Development Environment. Simpler and lighter than PyCharm, but still packs a punch.


A Python IDE specifically aimed at learning programming. Has a lot of helpful features to help you understand your code.


A free, collaborative, in-browser IDE to code in 50+ languages — without spending a second on setup.


Lightweight code editors supporting Python


A free Electron-based editor, a "hackable text editor for the 21st century", maintained by the GitHub team.

Visual Studio Code

A fully-featured editor based on Electron, extendable with plugins.

Sublime Text

A powerful Python-backed editor with great community support and a wealth of extensions.


An editor aimed at beginners for the purpose of learning how to code without the distractions more advanced editors sometimes cause. Particularly useful for use with microcontrollers, with built-in tools to interact with Adafruit and Arduino boards.

Google Collab

Google Collab is a high-powered custom version of Jupyter Notebook which supports e.g. !apt-get to install arbitrary Debian packages to the runtime, which is very generous with CPU and memory, and well-integrated with Google Drive. You can share your Collab Notebooks with other people and work collaboratively.

Accessibility Tools

Accessibility tools that help people write Python code.

Talon Voice

Talon is a tool being built that aims to bring programming, realtime video gaming, command line, and full desktop computer proficiency to people who have limited or no use of their hands.

Screen Readers - American Foundation for the Blind

Screen readers are software programs that allow blind or visually impaired users to read the text displayed on a computer screen with a speech synthesizer or braille display. There are many different screen reader program options, with this link describing many of them and their capabilities.