Thonny, Python IDE for beginners

Features

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.

Initial design

Uncomplicated variables. Once you’re done with hello-worlds, select View → variables and see how your programs and shell commands affect Python variables.

Table of 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 instructions

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.

Displaying Expression Evaluation

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.

Display of call frames

Highlights syntax errors. Unclosed quotation marks and parentheses are the most common syntax errors of beginners. Thonny’s editor makes these easy to spot.

Syntax Error Display

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.

Local and global names are visually distinguished

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).

Table of variables vs table of values

Code completion. Students can explore APIs with the help of completing code.

Code Completion

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.

Python command-ready system shell

simple and clean pip GUI. Select Tools → Manage Packages for even easier installation of 3rd party packages.

Python Command-Ready System Shell

Demo

Credits

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
    • Windows
    • for

    • Mac for
    • Linux
    • 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

Plug-ins

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
  • thonny-lahendus allows you to load

  • exercises from lahendus.ut.ee and send solutions
  • for automatic evaluation. thonny-edison

  • allows Python code to be loaded into Edison’s educational robot
  • thonny-dracula adds Dracula’s syntax theme.

  • 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.

Please note that the developers of Thonny do not endorse and are not responsible for these add-ons!

Contact & News

  • Changelog
  • Forum / mailing list
  • Problems
  • Facebook
  • 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)