Easy to get started. Thonny comes with Python 3.10 built-in, so you just need a simple installer and you’re ready to learn programming. (You can also use a separate Python installation, if necessary.) The initial user interface is stripped of all the features that can distract beginners.
Uncomplicated variables. Once you’re done with hello-worlds, select View → variables and see how your programs and shell commands affect Python variables.
Simple debugger. Just press Ctrl + F5 instead of F5 and you can run your programs step by step, no breakpoints required. Press F6 for a big step and F7 for a small step. The steps follow the structure of the program, not just the lines of code.
Step through expression evaluation. If you use small steps, you can even see how Python evaluates your expressions. You can think of this light blue box as a piece of paper where Python replaces subexpressions with their values, piece by piece.
Faithful representation of function calls. When you enter a function call, a new window opens with a separate local variable table and code pointer. A good understanding of how function calls work is especially important for understanding recursion.
Highlights syntax errors. Unclosed quotation marks and parentheses are the most common syntax errors of beginners. Thonny’s editor makes these easy to spot.
Explains scopes. Highlighting variable occurrences reminds you that the same name doesn’t always mean the same variable and helps detect typos. Local variables are visually distinguished from global variables.
A way to explain references. Variables are initially presented according to a simplified model (name → value), but you can switch to a more realistic model (name → address/id → value).
Code completion. Students can explore APIs with the help of completing code.
Beginner-friendly system shell. Select Tools → Open System Shell to install additional packages or learn how to handle Python on the command line. PATH and conflicts with other Python interpreters are addressed by Thonny.
simple and clean pip GUI. Select Tools → Manage Packages for even easier installation of 3rd party packages.
From 2014 to 2018, the main development of Thonny
took place at the Institute of Computer Science at the University of Tartu, Estonia. Since September 2018,
the development of Thonny
is partially supported by Cybernetica AS
The development of several features in Thonny 3.0 and 3.3 was proposed and supported by the Raspberry Pi Foundation
We are also grateful for the help of several contributors from the open source community around the world
Instructions and downloads
- Installation instructions for
- Mac for
- pip install thonny
- FAQ Wiki
The latest stable versions are linked in the download box at the top of this page. Previous and pre-release versions can be found in https://github.com/thonny/thonny/releases
Thonny has a simple infrastructure for extensions.
Here are some well-known plug-ins from Thonny:
thonny-gitonic adds a command to open gitonic thonny-black-format (abandoned) thonny-black-formatter adds a command to format the current file with Black thonny-ev3dev allows you to upload code to
- EV3 (and much more)
- thonny-error-explainer extends the Assistant with new error checkers
- exercises from lahendus.ut.ee and send solutions
- allows Python code to be loaded into Edison’s educational robot
- thonny-onedark adds the One Dark syntax theme
- thonny-crosshair adds commands to invoke the CrossHair parser.
- thonny-icontract-hypothesis adds commands to invoke icontract-hypothesis analyzer
- thonny-py5mode adds py5 support for a processing-like creative coding environment
- ThonnyFlake8 adds flake8 warnings.
thonny-lahendus allows you to load
for automatic evaluation. thonny-edison
thonny-dracula adds Dracula’s syntax theme.
Please note that the developers of Thonny do not endorse and are not responsible for these add-ons!
Contact & News
- Forum / mailing list
- Page Twitter Papers page
Thonny, a Python IDE for learning programming (
- poster at ITiCSE’15)
- Introducing Thonny, a Python IDE for learning programming (short article in Koli Calling’15)