πΊπ¦ Thonny 4 is dedicated to Ukraine fighting the Russian invasion. Please support Ukraine! πΊπ¦
Installation instructions
Windows
Default Windows installer (thonny-4.1.0.exe) is now 64-bit and comes with Python 3.10 -- this means it is suitable only for 64-bit Windows 8.1, 10 and 11. For Windows 7, 8 and for 32-bit Windows 10 use thonny-py38-4.1.0.exe which comes with 32-bit Python 3.8.
macOS
thonny-4.1.0.pkg contains universal2 build of Python 3.10 -- this means it is suitable both for Arm (M1, M2) and Intel Macs.
Linux
thonny-4.1.0.bash is a script, which downloads and installs thonny-4.1.0-x86_64.tar.gz (with Python 3.10) when run on x86_64 machines. On other platforms it tries to use system python3 (creates a virtual environment for Thonny and installs thonny
and its dependencies there).
Changes since 4.0.2
New
- Enhance esptool GUI (propose known MicroPython and CircuitPython downloads; allow setting baud rate and start address; allow querying device info), #2707, #1600, #2536, #1171, #2657
- Ensure Thonny's backends don't get confused by other installations, #2616
- Detect and warn if user module is shadowing a library module, #384
- Make serial port description in interpreter selection menu more descriptive
- Added pt_BR translation for all help pages, #2673, by @mgmalheiros
- Add Pololu MicroPython downloads to UF2 flasher
- Use UDisks to find mounted filesystems on Linux, #2683 by jwillikers
Fixes
- Fix a potential autocompletion error, #2162
- Experiment with better MicroPython raw paste fallback, #2624
- Fix sys.sdtout.write return value, #2629
- Remove unnecessary shebangs, #2645
- Add option for saving unnamed editors before Run/Debug, #2619
- Fix blank editors in macOS, again, #2425
- Fix todo view, #2681, by @kr-g
- Minor corrections for English help pages, #2674, by @mgmalheiros
- Upgrade bundled esptool from 4.4 to 4.5
- Allow Linux installer to use existing Python 3.11 and 3.12, #2676
- Require saving before using fast debugger, #2699, by @michaellass
- Add missing translation sites in editors.py, #2705 by @nicolasdespres
- Restore MicroPython completions in the shell, #2467, #2419
- Don't use deprecated FLASK_ENV environment variable.
- Add better shortcut for increasing font size in macOS, #2725
- Avoid falling back to Python menu in simple mode on macOS, #2729
- Various improvements to "Kind of Aqua" UI theme, #2760
- Fix double paste with Command-V when CapsLock on, #2753
- Fix Cut with Command-X when CapsLock on, #2753
Bundled dependency changes
- Upgrade bundled Python from 3.10.9 to 3.10.11
- Upgrade bundled Tk from 8.6.12 to 8.6.13
- Upgrade bundled Pylint from 2.15 to 2.17
- Upgrade bundled MyPy from 0.991 to 1.2
Changes since 4.1.0b1
- Fix MicroPython config page regression introduced in 4.1.0b1 (#2724, #2763)
- Fix remote Python 3 (SSH) connection error (regression introduced in 4.1.0b1)
- Fix code completion shortcut displayed in macOS menu
- Add command "Show esptool version" for ESP flasher
- Don't disconnect for ESP flasher commands which don't touch the device
- Close tab on middle click (#2767) by @mrexodia
- Make package manager support new micropython-lib index (#2777)
- Report macOS version instead of Darwin version in the About box
- Implement more flexible Raspberry Pi detection
- Enable thonny to open and save files with zenity 3.91+ (#2786) by @befeleme
- Make dbus_next dependency optional (#2771)
- Recognize ESP32 as possible CircuitPython device
- Add menu indicator for back-end switcher
- Allow WebREPL for RP2040 backend (experimental)
- Use correct MicroPython start address (0x0 instead of 0x1000) when flashing ESP32-S3
- Recognize ESP32 devices by VID 0x303A
- Don't show irrelevant ports in port selector (e.g. /dev/cu.Bluetooth-Incoming-Port)
- Allow setting --flash-size in ESP flasher, #2801
- Rename "Raspberry Pi" initial settings to "Raspberry Pi (simple)"
- Update several translations
- Add en_GB translation
- Attempt to overcome "window was deleted before its visibility changed" error
- Fix pipkin directory creation in paste mode (e.g. package installation via WebREPL)
- Upgrade bundled websockets, paramiko, docutils, mypy, Send2Trash, esptool to latest versions