Changelogs » Thonny

PyUp Safety actively tracks 268,345 Python packages for vulnerabilities and notifies you when to upgrade.



  * Clean up backend-switcher menu.


  * Fixed a regression introduced in b4 -- Thonny crashed on launch when data directory didn't exist yet.


  * Statusbar with backend switcher, 1356
  * Firmware flasher for CircuitPython, 1375, 1351
  * Updated firmware flasher for micro:bit, 1351
  * Refactor alternative interpreter configuration page, 1079
  * Don't choke when MP management output is wrapped between user input, 1346
  * Include ampersand in URL regex in the Shell, 1323
  * Dialogs may end up behind the main window, 1158, 1133
  * Augment LD_LIBRARY_PATH instead of replacing it, 1008
  * Fix "Install from requirements.txt" error, 1344
  * File dialog should scroll to top when new folder gets selected, 1345
  * Improve MicroPython file write reliability, 1355
  * Fix CircuitPython directory creation
  * Allow selecting venv 'activate' instead of interpreter symlink in the interpreter configuration page, 1079
  Improve diagnostic logging, 569


  * Stop/Restart command now soft-reboots MicroPython device after reaching the prompt
  * Fixed problem with saving SSH password


  * Fixed problem with circular imports affecting Python 3.7
  * Restored Python 3.5 compatibility


  * Back-end for remote Python over SSH (try editing and running remote and local scripts and upload/download in the file browser; package manager, system shell, and debuggers don't work yet)
  * Back-end for remote Unix MicroPython over SSH
  * Back-end for local Unix MicroPython
  * Package manager for MicroPython (using by Peter Hinch), 1299, see
  * Support Object inspector with MicroPython back-ends, 1309
  * Thonny now synchronizes real-time clock of MicroPython devices on connect and before each file operation, 1004
  * Allow editing any file as plain text, 1305
  * File browser now allows setting default action by extension (open in system default app or in Thonny's editor), 1305
  * ESP flash dialog now allows selecting flash mode, 1056 by Rune Langøy
  * "Save all" command, 1053 by Syed Nasim
  * Clicking on a value in the Shell selects it and opens in the Object inspector.
  * By default, after evaluating an expression in the Shell the value will be automatically shown in the Object inspector (if open). See Options => Shell to turn it off.
  * Object inspector now display more information about numbers (try 1024 or 0.1), 1230
  * Support evaluating several expressions at once in the Shell (just like official Python REPL), 795
  * Include esptool in binary bundles
  * Package manager now searches PyPI instead of requiring exact package name, 1300
  * File browser now shows remote files below local files. This way local pane won't jump around when switching between local and remote back-ends.
  * TECHNICAL: Versions of serveral dependencies were updated
  * Several intermittent bugs related to fragility of the communication with MicroPython REPL, 1103, 1147
  * 1138: Allow semicolon in Shell input with Python 3.8
  * 1129: Support terminator as system shell
  * 772: Allow invoking interrupt command from the menu when the editor has text selected (Ctrl+C would copy then)
  * 1146, 1159: "No module named pwd" error
  * 1283: Disable save button after save
  * Make Replayer work with timestamps without fractional part, 1116
  * Don't raise exception when hitting end of undo/redo stack, 1211 by Andrew Scheller
  * Fix a typo in the code to display dialog. (1260 by Ankith)
  * Convert keypad movement events to equivalent non-keypad ones, 1107 by Eliot Blennerhassett
  * Start file-open-dialog in same dir as current file, 1209 by Andrew Scheller
  * Bash install - do everything inside a new directory (1203 by Andrew Scheller)
  * 1145: Provide understandable error message, when Linux installer downloader is run on a non-supported platform (by Andrew Scheller)


  * TECHNICAL: Skip name hilighter tests for recent Jedi versions


  * FIXED 1035: Make highlight names work with recent Jedi versions
  * FIXED 1043: Can't load files from MicroPython device (regression introduced in 3.2.5)
  * FIXED: Missing "Local files" label on save target selection dialog


  * CHANGED: Python version in binary bundles upgraded from 3.7.5 to 3.7.6
  * CHANGED: MyPy checks are now enabled by default (Tools => Options => Assistant)
  * CHANGED: New Pylint checks are enabled
  * UPDATED 32: Thonny can now display/copy/paste Unicode emojis with Python 3.7.6+ / 3.8.1+ in Windows and Linux. Selection can be still wonky, though and emojis can freeze Thonny on macOS. Fixed by
  * FIXED 815: "Open System Shell" fails when no script is open
  * FIXED 973: Scrollbar in Help and Assistant acts funny
  * FIXED 1019: Crash on startup when Shell gets text inserted too soon
  * FIXED 1023: Accept code completions without parent and full_name
  * FIXED 1025: Extra imports by Thonny's back-end make stdlib name shadowing more troublesome
  * FIXED 1026: Allow '+' in image data URI chars in Shell
  * FIXED 1028: Thonny now has preliminary support for `Friendly Traceback <>`_.
  * FIXED: Allow larger images in shell (don't squeeze image URI-s), 401
  * FIXED: Fallback to English, when configured language can't be loaded
  * FIXED: Problem using esptool on PATH


  * NEW: Turkish translation by M. Burak Kalkan
  * NEW: Polish translation by Jarek Miszczak
  * NEW: Partial Italian translation by sailslack
  * UPDATED: Greek and Spanish translations
  * CHANGED: XXL bundle now includes also pandas
  * CHANGED: Make faster tracer show exceptions only with step_over and step_into
  * CHANGE 1018: Use traditional stack view by default in Simple mode
  * ENHANCEMENT: Improved performance for Faster debugger (proposed and supported by Raspberry Pi)
  * FIXED 975: Fix stepping through lambdas with faster debugger
  * FIXED 977: Don't report certain exceptions in faster debugger
  * FIXED 983: Propose replacing tabs with spaces only in the editor (not in debugger frames)
  * FIXED 986: Nicer debugger fails when run with breakpoints only in secondary files
  * FIXED 987: MicroPython autocomplete problems by adzierzanowski
  * FIXED 1003: Wrong interpretation of MicroPython file timestamps
  * FIXED 1005: Avoid testing included MicroPython stubs
  * FIXED 1015: Indicate disabled toolbar buttons on macOS


  * NEW: Greek translation by Nikos
  * UPDATE: Updated several translations (by Vytenis, rnLIKEm, Dleta, Alex ANDRÉ, NathanBnm, LionelVaux, Paul, Eric W, Frank Stengel,  ...)
  * UPDATE: Propose opening files via dialog in case of macOS Catalina permission error (813).


  * NEW: ESP plug-in has been merged into main Thonny package
  * FIXED 219: Implement sending EOF / restart for CPython
  * FIXED 873: More robust color preference loading in Pi theme
  * FIXED 876: Don't step into comprehension calls
  * FIXED 897: Redo shortcut not working in Linux and Mac
  * FIXED 899: Can't set THONNY_USER_DIR in
  * FIXED 904: Don't show remote MicroPython dialogs when device is busy
  * FIXED 905: Problems with Thonny menu on Mac after closing a dialog
  * FIXED 911: Allow restoring default scaling factor
  * FIXED 921: Make MicroPython backend play nicer with device resets
  * FIXED 923: CircuitPython on Trinket m0 gives small int overflow when listing files
  * FIXED 925: Save or open problem with network paths
  * FIXED 927: Visual glitch / ghosting in Expression Box in macOS
  * FIXED 928: Tooltips stay on top in macOS
  * FIXED 929: Indicate dirty state in macOS close button
  * FIXED 933: Scaling doesn't work right for Treeviews (Files, Variables)
  * FIXED 934: Pad button captions for certain languages
  * FIXED 936: Problem uploading files to some STM boards
  * FIXED 939: More robust handling of different line endings
  * FIXED 943: Wrong syntax highlighting with triple quoted string
  * FIXED 946: Handle broken UTF-8 codepoints in MicroPython output
  * FIXED 951: Use standard tabstops for program output
  * FIXED 953: Allow running system commands with MP back-end
  * FIXED 957: Wrong encoding in multiprocessing output
  * FIXED 960: File browser is not working in replayer
  * FIXED 966: Thonny encounters "internal error" in programs calling exit()
  * FIXED 969: Provide nicer message, when MicroPython backend can't get to the REPL
  * FIXED: Don't apply theming to menu in macOS (menu items were dull with dark themes)


  * NEW: Add European Portuguese translation (by Emanuel Angelo)
  * NEW: Add Lithuanian translation (by Vytenis)
  * NEW: Add Ukrainian translation (by borpol)
  * FIXED 802: Avoid scary traceback on MicroPython disconnect
  * FIXED 840: Problems with file dialogs in macOS 10.15
  * FIXED 843: Make right-click select items in Files view in macOS
  * FIXED 845: Crash with older ESP plug-in
  * FIXED 851: Ignore warnings when exporting variables
  * FIXED 854: Make single instance mode work in multi-user systems
  * FIXED 855: Wrong coloring with paren matching
  * FIXED 859: Support relative paths when opening files with Thonny from command line
  * FIXED 874: Multiline strings break stepping focus background
  * FIXED: Dutch translation was inproperly set up
  * FIXED: Internal error in Object Inspector (by Emanuel Angelo)
  * FIXED: Problem with compacting user event logs
  * TECHNICAL: Make tests run with Python 3.8


  * FIXED 849: Uploading single file to MicroPython doesn't work
  * UPDATE: Updated translations


  * NEW: Several new commands for Files view (New directory, Move to Trash, Delete, Upload (to MicroPython device), Download (from MicroPython device), ...)
  * CHANGED: MicroPython files are now displayed in the upper pane of Files view
  * CHANGED: Saving or loading editor content to/from MicroPython device displays progress bar
  * TECHNICAL: New dependency: Send2Trash


  * FIXED: Problem with translation markers disturbing import


  * NEW: BBC micro:bit plug-in has been merged into main Thonny package
  * CHANGED: micro:bit flasher now downloads latest MicroPython from GitHub
  * FIXED: Problems with micro:bit file browser
  * FIXED 808: multiprocessing doesn't work in Windows
  * FIXED 814: Ctrl+V inserts text twice in Windows (regression introduced in previous betas)


  * FIXED 810: Use regular spacing in simple mode toolbar


  * FIXED 809: Advertise indent/dedent in Edit menu
  * FIXED: Marked more terms for translation
  * FIXED: Updated Estonian translation


  * FIXED 803: %cd gives error on MP/CP backend
  * FIXED 804: Changing directories does not show in FilesView for MP/CP
  * FIXED 805: Thonny user dir was not created at startup


  * NEW: Former thonny-pi plug-in (containing Raspberry Pi theme) is now part of main Thonny package
  * NEW: Former thonny-circuitpython plug-in (containing CircuitPython back-end) is now part of main Thonny package
  * NEW: pip GUI now allows installing from requirements.txt file
  * NEW: Portable/thumbdrive bundles for Windows, macOS and Linux (
  * FIXED 188: Tkinter windows won't close on macOS
  * FIXED 361: Include Python development files in binary bundles
  * FIXED 488: Modal dialogs may get stuck
  * FIXED 639: Unset misleading environment variables in Windows launcher
  * FIXED 676: Can't close matplotlib window when MacOSX backend is used
  * FIXED 706: In Linux Thonny hangs on close sometimes
  * FIXED 800: Can't load large files
  * FIXED: Plotter now listens for theme changes (ie. changes background without restart)
  * CHANGED: Welcome dialog is not show on Raspberry Pi
  * CHANGED: Usage event logging is now disabled by default and can be enabled in Tools => Options => General
  * CHANGED: MicroPython back-ends don't interrupt running process on connecting
  * TECHNICAL: MicroPython back-end got a big refactoring


  * NEW: [Work in progress] UI and help content can be translated to other languages (big thanks to cspaier, Georges Khaznadar and translators). See docs/ for contrubution instructions.
  * NEW: Shell supports ANSI color codes and line overwriting with ``\b`` and ``\r``. See "Help => Shell" for more info.
  * NEW: Shell now has extension called "Plotter", which visualizes series of numbers printed to the standard output. See "Help => Plotter" for more info.
  * NEW: Shell presents PNG data URL-s printed to stdout as images. Try print("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==")
  * NEW: Automatic change of working directory is now optional (Tools => Options => Run & Debug)
  * NEW: Files view now allows setting working directory (double-click on folder name)
  * NEW: Files view allows browsing device's filesystem with MicroPython back-ends
  * NEW: Files from MicroPython devices can be opened in the editor and edited directly
  * NEW: You can now choose which debugger is invoked when clicking on the "Debug" toolbar button (Tools => Options => Run & Debug)
  * NEW: On first run Thonny presents a dialog for selecting UI language and initial settings ("standard" or "Raspberry Pi"). With Raspberry Pi settings Thonny will start in simple mode, preferred debugger set to "faster" and UI theme set to "Raspberry Pi".
  * NEW: Shell IO font can be configured (Tools => Options => Fonts & Themes). By André Roberge
  * NEW: Support for running Flask programs with F5. Also fixed several issues which prevented running and debugging Flask programs. See "Help => Web development with Flask" for more info.
  * NEW: "File => Save copy" allows saving current editor content to a different location without changing editor file name.
  * FIXED 630: Pressing up then down in shell doesn't leave shell in previous state. Fixed by Chad Purdy
  * FIXED 691: No Show shell on run with no input() prompt. Fixed by Chad Purdy
  * FIXED 692: Cancelling Save As dialog causes error. Fixed by Chad Purdy
  * FIXED 700: Allow viewing all files in file dialogs in Linux
  * FIXED 703: Exception view was not legible with dark theme
  * FIXED 704: Suggest current filename with Save As. Fixed by Илья Кругликов
  * FIXED 708: Error when stacktrace includes Cython frames.
  * FIXED 711: Thonny can now handle UNC paths
  * FIXED 719: Buttons are too narrow in Search/Replace dialog
  * FIXED 725: When saving a file, respect the original fileformat. By badukaire
  * FIXED 727: Respect fileformat for unix files too. By badukaire
  * FIXED 731: Right click menu disappears immediately and executes unwanted Undo action
  * FIXED 738: Window appears lower on each start
  * FIXED 749: "Focus shell" should bring you to a new prompt. By Ivoz
  * CHANGED: In order to work around ``tkinter.Text`` performance problems, Shell squeezes very long lines into a button. The button opens a dialog for expanding, viewing or copying those lines. Shell also deletes old output to remain responsive.
  * CHANGED: Various changes in simple mode (Zoom and Quit buttons, merging Run and Resume buttons, automatic display of Variables view).
  * CHANGED: Disabled Tk clipboard management workaround in Linux (occasionally caused UI freezes). This means clipboard becomes emptied after closing Thonny.
  * CHANGED: MicroPython commands from "Device" menu have been redesigned (use Files view instead) or moved to other menus (Run and Tools). The goal is to get rid of Device menu and keep only magic commands which make sense from the back-end perspective.
  Several of these features were proposed and supported by Raspberry Pi Foundation.


  * FIXED: Make Terminal features work in Windows again
  * FIXED 685: Print cuts lines
  * FIXED 686: Stepping over user modules can be too slow
  * ENHANCEMENT: Include pip in binary bundles


  * FIXED 674: Print doesn't work on Mac
  * FIXED 675: Make focus editor / shell shortcuts usable on Mac
  * FIXED 677: Debugging fails with extended slice syntax


  * NEW: "Run => Pygame Zero mode" allows running Pygame Zero programs with F5
  * NEW: Support for Birdseye debugger (Run => Debug current script (Birdseye)) by Alex Hall
  * NEW: Notes view for writing down code snippets, task descriptions, etc.
  * NEW: Allow running current script in system terminal
  * NEW: "File => Print..." allows printing current script (via default web browser)
  * NEW: Shell's context menu now has editing commands
  * ENHANCEMENT: Open the Shell window on Run if it is not open
  * ENHANCEMENT: More robust support for running system commands in Thonny Shell (with ! prefix)
  * ENHANCEMENT: Allow switching off Pylint and/or MyPy checks
  * ENHANCEMENT: Make it clear how to exit Heap mode (with notification box in the upper-right corner of the main window)
  * FIXED 621: Holding Enter in the Shell causes a crash
  * FIXED 623: Parameters code completion error
  * FIXED 627: Debugging stops after raise statement
  * FIXED 628: Wrong line highlighted when stepping in for-loop
  * FIXED 629: Interrupting system command (!) shows ugly traceback
  * FIXED 633: pasting can't affect read-only text anymore
  * FIXED 641: Better font scaling in Linux (see Tools => Options => General for more control)
  * FIXED 646: Simple open file to edit from command line failing
  * FIXED 655: Invalid f-string crashes Assistant
  * FIXED 666: Make stdin iterable
  * FIXED: Solved several problems related to stepping through raising an exception
  * FIXED: Issues with automatic indentation (Thanks to Alex Hall!)
  * CHANGED: Use Konsole as terminal in KDE
  * CHANGED: "Tools => Open system shell" now shows relevant commands differently
  * CHANGED: Make Assistant's MyPy checks disabled by default
  * CHANGED: Source code now lives at GitHub (


  * FIXED 597: The directory with Python scripts may not be in path for executing system commands from shell
  * FIXED: Make executing shell commands compatible with Python 3.5
  * FIXED: Make MyPy support compatible with older MyPy versions
  * FIXED: Make turtle.pyi compatible with Python 3.5 and remove Windows linebreaks
  * FIXED: MyPy error col offset


  * FIXED 592: MyPy doesn't work when cwd == sys.prefix
  * FIXED 593: No-message exceptions crash the Assistant
  * FIXED 595: Running system commands causes an error
  * FIXED 596: Arguments are ignored when running system commands from shell in Posix


  * FIXED 538: Turtle programs may give false warnings (Typeshed stubs were not packaged)
  * FIXED 586: Import interception mechanism fails for some modules
  * FIXED 591: Assistant fails when filename is missing from error info


  * FIXED 573: "Highlight matching names" and "Highlight local variables" makes editor very slow
  * FIXED 574: Error in outline
  * FIXED 578: resizing local variable pane in debugger causes error


  * FIXED 564: In Windows "Highlight local variables" and "Higlight matching names" cause Thonny to load Jedi files


  * FIXED: Regression from 3.0.2 (incomplete code refactoring)


  * FIXED 563: Problems with HeapView and EventsView
  * FIXED 565: Don't replace tabs in shell


  * FIXED: Problems with executing "Run" and "Debug" commands together with "cd" command
  * FIXED: Editor file name issues
  * FIXED: MicroPython %cat command failed over serial


  * CHANGED: Line numbers are now visible by default
  * CHANGED: Stack and Assistant views are now in the bottom-right corner
  * CHANGED: Shell doesn't show full path of bundled interpreters anymore
  * ENHANCEMENT 555: Internal errors are now shown with more suitable dialog
  * FIXED 170: Command+k for clearing shell in Mac
  * FIXED 547: Recommend "..." button when plug-ins latest stable isn't suitable for this Thonny version
  * FIXED 548: Prevent inconsistent use of tabs and spaces error (when pasting or opening text containing tabs, Thonny proposes to replace them with spaces)
  * FIXED 557: Default window size too small for simple mode
  * FIXED 559: Make text copied to clipboard available even after closing Thonny
  * FIXED: Implemented workaround for
  * TECHNICAL: MicroPython backend now shows the source of failing internal commands


  * ENHANCEMENT: Documented several features (see Help => Help contents)
  * FIXED 523: Open system shell doesn't work with pip 10
  * FIXED 534: Add shortcut for step-back
  * FIXED 538: Turtle programs give false warnings


  * CHANGED: In order to avoid pollution of user home directory, the configuration file and logs are now stored in directories recommended by platform style guides (%APPDATA%/Thonny on Windows, ~/Library/Thonny on Mac and ~/.config/Thonny on Linux). Old configuration and user logs will be imported on first run.
  * CHANGED: "Back end" configuration page was renamed to "Interpreter" (as it was in Thonny 2.1)
  * CHANGED: Python version in Thonny+Python bundles upgraded to 3.7.1rc1
  * NEW: File menu received a submenu for easy opening of recent files.
  * ENHANCEMENT: Add shortcut for clearing shell (Ctrl+L)
  * ENHANCEMENT: Warn when script is saved with a common library module name (eg.
  * ENHANCEMENT: Allow switching between regular and simple mode (Tools => Options => General)
  * FIXED 72: "View => Full screen" (in Expert mode) is now also available on Mac
  * FIXED 262: Add ability to select an autocomplete suggestion with TAB
  * FIXED 316: Nice debugger doesn't handle named arguments properly
  * FIXED 339: Allow disabling sound Tools => Options => General
  * FIXED 389: AST marker fails with dict merge
  * FIXED 478: Add option to reopen all files on start-up
  * FIXED 479: Make Thonny save configuration when "Quit"-ed on Mac
  * FIXED 480: Thonny now properly remembers opened files
  * FIXED 498: Open System Shell doesn't work on Raspberry
  * FIXED 501: Assistant feedback preview link doesn't work on mac
  * FIXED 510: Error when listing available interpreters in config page
  * FIXED 518: add menu item: "device" / "Upload current script" for MicroPython (by Jens Diemer)
  * FIXED: Object inspector can show images (again)
  * FIXED: Pylint and MyPy processes don't hang anymore with large output.


  * FIXED: requirements.txt was missing mypy


  * NEW: When program has syntax error or crashes with an exception, Assistant pane opens and tries to help diagnose the problem. Uses Pylint, MyPy and custom dynamic analysis under the hood. (Big "Thank you!" to Raspberry Pi Foundation for the support!)
  * ENHANCEMENT: Resizing the main window doesn't mess up views' layout anymore.
  * ENHANCEMENT: Better support for debugging f-strings.
  * ENHANCEMENT: Nice debugger now recovers better when it is not able to understand a program.
  * FIXED 496: Regression which caused Variables view to skip variables updates during "nicer debugging".
  * FIXED 440: Copy&paste over a selection will now delete the text selection first (was problem for some Linuxes)
  * FIXED: Removed a nasty debugging statement left into b3, which may cause a crash in the end of debugging.


  * FIXED: Various problems with pip GUI
  * FIXED: Variables view misses events
  * FIXED: Error when last back-end was not available anymore
  * TECHNICAL: Implemented ChoiceDialog


  * FIXED: problems with pip GUI in virtualenv


  Note: This version is successor of 2.2.0b4 and 2.1.21. Stable release of 2.2.0 was skipped.
  (Incrementing the major version felt more appropriate considering the amount of new and changed features.)
  * NEW: Thonny now has two debug modes: beside original AST based debug mode (the "nicer" one, Ctrl+F5) there is now also line-based mode (the "faster" one, Shift+F5), which is not so intuitive but much more efficient.
  * NEW: Both debug modes now support breakpoints (switch on line numbers and double-click on the margin). Big thanks to Raspberry Pi Foundation for the support!
  * NEW: Alternative presentation for call stack (in single window, just like in most debuggers; see Tools => Options => Debugger)
  * NEW: Clicking on the links in stacktrace now shows the variables of those frames.
  * NEW: You can re-run your changed program without closing it first (relevant for graphical programs).
  * NEW: Checking "Run => Dock user windows" makes your Tkinter windows stay on top and appear always on the same location. This allows tweaking your turtle programs while looking at current output.
  * NEW: "View => Program arguments" opens a box where you can write the argument string for your program
  * NEW: "Tools => Options => Backend => Custom Python interpreter" now allows creating virtual environments
  * NEW: "Tools => Manage packages" now allows installing new packages with all CPython backends, not only virtual environments. If the backend is not a virtual environment it installs to user site packages (with `pip install --user`)
  * NEW: Thonny now includes basic support for MicroPython (former `thonny_microbit` plug-in). See for more info.
  * CHANGED: Upgraded Python to version 3.7.0 in Thonny+Python bundles
  * CHANGED: Dropped support for Python 3.4 (both for front-end and back-end)
  * CHANGED: Dropped support for Tk 8.5. All bundles (including Mac's) now come with Tk 8.6.8
  * CHANGED: Default back-end is now "Same as front-end" (was "A special virtual environment"). This makes deployment easier in classroom setting and it is simpler scheme in general. "Special virtual environment" backend may be removed in future versions.
  * CHANGED: Plug-ins will be now installed to regular user site packages directory (was ~/.thonny/plugins)
  * CHANGED: If Thonny (front-end) is run from a virtual environment, user directory (with configuration.ini and logs) will be .thonny under virtual environment's root directory (instead of usual ~/.thonny).
  * ENHANCEMENT: Better Windows installer (run as administrator for all-users install)
  * ENHANCEMENT: thonny.exe is now digitally signed
  * ENHANCEMENT: On Linux Thonny now uses native file dialogs (via zenity)
  * ENHANCEMENT: Nicer debugger can now step into your functions defined in other modules
  * ENHANCEMENT: Nicer debugger can now stop before the assignement of loop variable in for-loops
  * ENHANCEMENT: "Run to cursor" can be called by right-clicking desired line in the editor and selecting the command from context menu
  * ENHANCEMENT: Great time and memory optimizations in nicer debug mode. The ability to step back in time is not so expensive anymore.
  * ENHANCEMENT: Thonny now detects external file modifications and proposes to reload
  * ENHANCEMENT: New Windows installer (run as administrator for all-users install)
  * FIXED 163: Uninstaller now correctly removes "Open with Thonny" context menu entry
  * FIXED 340: Validate geometry before loading
  * FIXED 358: sys.exit() in user programs doesn't show stacktrace anymore
  * FIXED 363: causes Thonny backend to hang
  * FIXED 375: Files are now saved with linebreaks suitable for current platform
  * FIXED 419: logging doesn't work in user programs
  * FIXED 422: Make Ctrl+C, Ctrl+V etc. work on Greek keyboard
  * FIXED 440: In Linux paste over selection doesn't remove the selection
  * FIXED 450: Locals marker doesn't work with jedi 0.12
  * FIXED 468: Problem with changing backend interpreter
  * FIXED 471: Problem when Thonny uses jedi 0.11 or newer
  * FIXED 475: Heap view misbehaving on startup
  * FIXED: "Run => Run to cursor" works again
  * FIXED: Thonny now honors PEP 263 style encoding markers when saving files. (UTF-8 is still the default)
  * FIXED: Problem when jedi 0.10 and parso are both installed
  * TECHNICAL: Plug-in writers can now control each import in user programs (thonny.backend.VM.add_import_handler)
  * TECHNICAL: Communication messages between back-end and front-end were changed
  * TECHNICAL: Thonny doesn't tweak PYTHONUSERBASE anymore to put plugins under ~/.thonny. Regular user site packages is used instead
  * TECHNICAL: Dependency to "packaging" introduced in 2.2 betas is now replaced with "setuptools"


  * FIXED: Couldn't open menus with None backend


  * FIXED 425: Too big automatic scaling
  * FIXED 427: Can't run files with spaces in filename
  * FIXED: Fixed a bug when debugging and encountering an exception (by Alar Leemet)
  * ENHANCEMENT: Show indicator about stepping in the past in the text of editor tabs
  * ENHANCEMENT: Added Thonny version guards for installing plug-ins
  * EXPERIMENTAL: Preliminary support for running system commands in Thonny shell (eg. `!ls` or `!dir`)
  * TECHNICAL: thonny.exe in Windows bundle is now signed
  * TECHNICAL: Delay starting of Runner until UI is shown
  * TECHNICAL: Various enhancements to support MicroPython plug-ins


  * FIXED: Options dialog crashes when Variables view hasn't been created yet


  * NEW: Added support for stepping back in time during debugging (Run => Step back) by Alar Leemet. If you accidentally stepped over an interesting part of code, then now you can step back and step into.
  * NEW: Added support for UI and syntax theming (
  * NEW: Added several built-in dark themes
  * NEW: Added support for display scaling / high-DPI screens (Tools => Options => General)
  * NEW: Added closing buttons to the tabs of all views
  * NEW: Added support for (CPython) back-end plug-ins (
  * NEW: Current editor line can be highlighted (Tools => Options => Editor)
  * NEW: Thonny can be started in simple mode (
  * NEW: Variables view now allows viewing variables from other modules beside __main__  (Tools => Options => General)
  * CHANGED: Dropped support for Python 3.4 (both for front-end and back-end)
  * CHANGED: Reorganized back-end configuration ("Tools => Options => Back-end" instead of "Tools => Options => Interpreter")
  * CHANGED: The roles of Interrupt and Stop commands are now more clear: Stop always restarts the backend and Interrupt only tries to interrupt
  * CHANGED: Editing the running program doesn't interrupt it anymore.
  * CHANGED: Object inspector now shows attributes and object overview on different tabs
  * CHANGED: Can't set thonny.THONNY_USER_DIR directly in anymore (
  * CHANGED: For plug-in writers: Unified early and late plug-ins (load_early_plugin should be renamed to load_plugin)
  * CHANGED: For plug-in writers: get_workbench and get_runner moved from thonny.globals to thonny
  * FIXED 358: Hide the stacktrace of SystemExit
  * FIXED 368: "Open system shell" doesn't work in Xfce (fix by Miro Hrončok)
  * FIXED 370: Made zooming with Ctrl++ / Ctrl+- work on the numpad on Linux
  * FIXED 372: Now it's possible to specify a link as backend interpreter (fix by Miro Hrončok)
  * FIXED 396: exec causes range marker to crash
  * FIXED 403: Window width may become negative
  * TECHNICAL: Changed the location and sharing of,,
  * TECHNICAL: Cleaner approach for sharing jedi with the back-end
  * TECHNICAL: Package manager now uses instead of
  * TECHNICAL: Several changes in Runner and BackendProxy interface
  * TECHNICAL: Saving an editor now forces writing to disk (see


  Happy re-independence day to Estonia!
  * ENHANCEMENT: Less intrusive logging for AST marking problems
  * FIXED 340: Validate geometry before loading
  * FIXED 363: causes Thonny backend to hang
  * FIXED 419: logging doesn't work in user programs
  * FIXED 440: In Linux paste over selection doesn't remove the selection
  * FIXED 487: Use and turn off pip warnings in package manager
  * FIXED 490: Debugger gets confused with f-strings
  * FIXED: In case of back-end problems, kill backend instead of resetting
  * FIXED: Colorize f-string prefixes


  * FIXED 471: Another problem when Thonny uses jedi 0.11 or newer


  * FIXED: Problem when jedi 0.10 and parso are both installed


  Updates in this version are relevant only on Windows
  * FIXED 467: Error when running Thonny with pythonw on Windows (regression from 2.1.18)
  * ENHANCEMENT: New Windows installer (run as administrator for all-users install)
  * ENHANCEMENT: Upgraded Python to version 3.6.6 in Thonny+Python bundles


  * FIXED 450: Locals marker doesn't work with jedi 0.12


  * FIXED 409: Package manager crashed after release of pip 9.0.2


  * Tests moved under thonny package
  * Tests included in the source distribution
  * More icons included in the source distribution


  * Removed StartupNotify from Linux .desktop file (StartupNotify=true leaves cursor spinning in Debian)


  * Added some Linux-specific files to source distribution. No new features or fixes.


  * Temporary workaround for 351: Locals and name highlighter occasionally make Thonny freeze
  * Include only required licenses in source dist


  * FIXED 303: Allow specifying same interpreter for backend as frontend uses
  * FIXED 304: Allow specifying backend interpreter by relative path
  * FIXED 312: Closing unsaved tab causes error
  * FIXED 319: Linux install script needs quoting around the path(s)
  * FIXED 320: Install gets recursive if trying to install within extracted tarball
  * FIXED 321: Linux installer fails if invoked with relative, local user path
  * FIXED 334: init.tcl not found (Better control over back-end environment variables)
  * FIXED 343: Thonny now also works with jedi 0.11


  * FIXED 31: Infinite print loop freezes Thonny
  * FIXED 285: Previous used interpreters are not shown in options dialog
  * FIXED 296: Make it more explicit that pip GUI search box needs exact package name
  * FIXED 298: Python crashes keep backend hanging
  * FIXED 305: Variables table doesn't get updated, if it's blocked by another view


  * NEW: More flexibility for classroom setups (see
  * FIXED 276: Copy with Ctrl+C causes bell
  * FIXED 277: Triple-quoted strings keep keyword coloring
  * FIXED 278: Paste in shell causes bell
  * FIXED 281: Wrong unindentation with SHIFT+TAB when last line does not end with linebreak
  * FIXED 283: backend.log path doesn't take THONNY_USER_DIR into account
  * FIXED 284: Internal error when saving to a read-only folder/file (now proposes to choose another name)


  * FIXED 273: Memory leak in editor margin because of undo log
  * FIXED 275: Updating line numbers is very inefficient
  * FIXED: Pasted text occasionally was hidden below bottom edge of the editor
  * FIXED: sys.exit() didn't really close the backend


  * ENHANCEMENT: Code completion with Tab-key is now optional (see Tools => Options => Editor)
  * ENHANCEMENT: Clicking on the editor now closes code completion box
  * CHANGED: Code completion box doesn't offer names starting with double underscore anymore.
  * FIXED: Error caused by too fast typing with open code completions box
  * ENHANCEMENT: Find/Replace dialog can now be operated with F3
  * ENHANCEMENT: Find/Replace pre-selects previously used search string
  * ENHANCEMENT: Find/Replace dialog doesn't block main window anymore
  * FIXED: Find/Replace doesn't ignore spaces in search string anymore
  * FIXED: Closed views reappeared after restart if they were only views in that notebook
  * FIXED 264: Debugger fails with with conditional list comprehension
  * FIXED 265: Error when using two word search string in pip GUI
  * FIXED 266: Occasional incorrect line numbering
  * FIXED 267: Kivy application main window didn't show in Windows
  * TECHNICAL: Better diagnostic logging


  * CHANGED: pip GUI now works in read-only mode unless backend is a virtual environment
  * FIXED: Error when non-default backend was used without previously generated Thonny-private virtual environment


  * FIXED 260: Strange behaviour when indenting with TAB
  * FIXED 261: Editing a triple-quoted string breaks coloring in following lines
  * FIXED: Made outdated pip detection more general


  * FIXED: Jedi version checking problem


  (This release is meant for making Thonny work better with system Python 3.4 in Debian Jessie)
  * FIXED 254: "Manage plug-ins" now gives instructions for installing pip if system is missing it or it's too old
  * FIXED 255: Name highlighter and locals marker are now quietly disabled when system has too old jedi
  * FIXED: Virtual env dialog now closes properly
  * TECHNICAL: SubprocessDialog now has more robust returncode checking in Linux


  * FIXED 250: Debugger focus was off by one line in function frames
  * FIXED 251: Debugger timing issue (wrong command type in the backend)
  * FIXED 252: Debugger timing issue (get_globals and debugger commands interfere)
  * FIXED 253: Creating default virtual env does not work when using Debian python3 without ensurepip


  * FIXED 220 and 237: Icon problems in Linux tasbar.
  * FIXED 245: Tooltips not working in Mac
  * FIXED 246: Current script did not get executed if cursor was not in the end of the shell
  * FIXED 249: Reset, Run and Debug caused double prompt


  * FIXED 241: Some menu items gave errors with micro:bit backend.
  * FIXED 242: Focus got stuck on first run (no entry was possible neither in shell nor editor when initialization dialog closed)


  * TECHNICAL: Changes in diagnostic logging


  * TECHNICAL: Implemented more robust approach for installing Thonny plugins


  * CHANGED: Installed plugins now end up under ~/.thonny/plugins
  * TECHNICAL: Backend preparation now occurs when main window has been opened


  * FIXED: Backend related regression introduced in b8


  * CHANGED: (FIXED 231) Stop/Reset button is now Interrupt/Reset button (tries to interrupt a running command instead of reseting. Resets if pressed in idle state)
  * FIXED 232: Ubuntu showed pip GUI captions with too big font
  * FIXED 233: Thonny now remembers which view was on top in a panel.
  * FIXED 234: Multiline support problems in shell (trailing whitespace was causing trouble)
  * FIXED: pip GUI shows latest version number when there is no stable version.
  * FIXED: pip GUI now can handle also packages without PyPI presence
  * TECHNICAL: Backends are not sent Reset command for initialization anymore.


  * FIXED: Removed some circular import to support Python 3.4
  * FIXED: pip GUI now also lists installed pre-releases
  * EXPERIMENTAL: GUI for installing Thonny plug-ins (Tools => Manage plug-ins...)
  * TECHNICAL: Thonny+Python bundles again include pip (needed for installing plug-ins)
  * TECHNICAL: Refactored creation of several widgets to support theming
  * TECHNICAL: THONNY_USER_DIR environment variable can now specify where Thonny stores user data (conf files, default virtual env, ...)


  * ENHANCEMENT: Shell now shows location of external interpreter as welcome text
  * FIXED 224: Tab-indentation didn't work if tail of the text was selected and text didn't end with empty line
  * FIXED: Tab with selected text occasionally invoked code-completion
  * TECHNICAL: Tweaks in Windows console allocation
  * TECHNICAL: Thonny+Python bundles don't include pip anymore (venv gets pip via ensurepip)


  * FIXED: Typo in pipGUI (regression introduced in b4)


  * CHANGED: If you want to use Thonny with external Python interpreter, then now you should select python.exe instead of pythonw.exe.
  * FIXED 223: Can't interrupt subprocess when Thonny is run via thonny.exe
  * FIXED: Private venv didn't find Tcl/Tk in ubuntu (commit 33eabff)
  * FIXED: Right-click on editor tabs now also works on macOS.


  * NEW: Dialog for managing 3rd party packages / a simple pip GUI. Check it out: "Tools => Manage packages"
  * NEW: Shell now supports multiline commands
  * ENHANCEMENT: Window title now shows full path and cursor location of current file.
  * ENHANCEMENT: Editor lines can be selected by clicking and/or dragging on line-number margin (thanks to Sven).
  * ENHANCEMENT: Most programs can now be interrupted by Ctrl+C without restarting the process.
  * ENHANCEMENT: You can start editing the code that is still running (the process gets interrupted automatically). This is handy when developing tkinter applications.
  * ENHANCEMENT: Tab can be used as alternative code-completion shortcut.
  * ENHANCEMENT: Recommended pip-command now appears faster in System Shell.
  * ENHANCEMENT: Alternative interpreter doesn't need to have jedi installed in order to provide code-completions (see 171: Code auto-complete error)
  * ENHANCEMENT: Double-click on autocomplete list inserts the completion
  * EXPERIMENTAL: Ctrl-click on a name in code tries to locate its definition. NB! Not finished yet!
  * CHANGED: Bundled Python version has been upgraded to 3.6.1
  * CHANGED: Bundled Python in Mac and Linux now uses SSL certs from certifi project (
  * REMOVED: Moved incomplete Exercise system to a separate plugin ( With this got rid of tkinterhtml, requests and beautifulsoup4 dependencies.
  * FIXED 16: Run doesn't clear variables (again?)
  * FIXED 98: Nested functions crashed the debugger.
  * FIXED 114: Crash when trying to change interpreter in macOS.
  * FIXED 142: "Open system shell" failed when Thonny path had spaces in it. Paths are now properly quoted.
  * FIXED 154: Problems with Notebook tabs' context menus
  * FIXED 159: Debugging list or set comprehension caused crash
  * FIXED 166: Can't delete one of two spaces with backspace
  * FIXED 180: Right-click doesn't focus editor
  * FIXED 187: Main modules launched by Thonny were missing ``__spec__`` attribute.
  * FIXED 195: Debugger crashes when using generators.
  * FIXED 201: "Tools => Open Thonny data folder" now works also in macOS.
  * FIXED 211: Linux installer was failing when using ``xdg-user-dir`` (thanks to Ryan McQuen)
  * FIXED 213: In single instance mode new Window doesn't get focus
  * FIXED 217: Debugger on Python 3.5 and later can't handle splat operator
  * FIXED 221: Context menus in Linux can now be closed by clicking elsewhere
  * FIXED: Event logger did not save filenames (eb34c5d).
  * FIXED: Problem in replayer (db78855).
  * TECHNICAL: Bundled Jedi version has been upgraded to 0.10.2.
  * TECHNICAL: 3rd party Thonny plugins must now be under ``thonnycontrib`` namespace package.
  * TECHNICAL: Introduced the concept of "eary plugins" (plugins, which get loaded before initializing the runner).
  * TECHNICAL: Refactored the interface between GUI and backend to allow different backend implementations
  * TECHNICAL: Previously, with bundled Python, Thonny was using nasty tricks to force pip install packages install under ~/.thonny. Now it creates a proper virtual environment under ~/.thonny and uses this as the backend by default (instead of using interpreter running the GUI directly).
  * TECHNICAL: Automatic tkinter updates on the backend are now less invasive


  * FIXED: Making font size too small would crash Thonny.
  * FIXED: Another take on configuration file corruption.
  * FIXED: Shift-Tab wasn’t working in some cases.
  * FIXED 165: "Open system shell" did not add Scripts dir to PATH in Windows.
  * FIXED 183: ``from __future__ import`` crashed the debugger.


  * FIXED: a bug in Linux installer (configuration file wasn’t created in new installations)


  * FIXED: Corrected shift key detection (a82bd4d)


  * FIXED: Configuration file was occasionally getting corrupted (for mysterious reasons, maybe a bug in Python’s configparser)
  * FIXED 104: Negative font size crashed Thonny
  * FIXED 143: Linux installer fails if desktop isn't named "Desktop". (Later turned out this wasn't fixed for all cases).
  * FIXED 134: "Open system shell" doesn't work in Centos 7 KDE


  * FIXED: Quoting in "Open system shell" in Mac. Again.


  * FIXED: Quoting in "Open system shell" in Mac.


  * FIXED 106: Don't let user logs grow too big


  * NEW: Added code completion (powered by Jedi:
  * NEW: Added new command "Tools => Open system shell" which opens terminal where current Python is in PATH.
  * CHANGED: Single instance mode is now optional (Tools => Options => General)
  * FIXED: Many bugs


  * NEW: Thonny now runs in single instance mode. Previously, when you opened a py file with Thonny, a new Thonny instance (window) was created even if an instance existed already. This became nuisance if you opened several files. Now Thonny works as single instance program, meaning only one instance of Thonny runs at the time. When you open another file, it is opened in existing window.
  * NEW: Editor enhancements. Added option to show line numbers and right margin in the editor. In order to keep first impression cleaner, they are disabled by default. See Tools => Options => Editor. Don't forget that you don't need line numbers for locating lines mentioned in error messages -- you can click them and Thonny shows you the line.
  * FIXED: Some bugs where Thonny couldn't prepare some programs for debugging.
  Older versions
  See and