A small, simple editor for beginner Python programmers. Written in Python and Qt5.

Overview

Mu - A Simple Python Code Editor

https://mu.readthedocs.io/en/latest/_images/logo.png

Mu is a simple code editor for beginner programmers based on extensive feedback from teachers and learners. Having said that, Mu is for anyone who wants to use a simple "no frills" editor.

Mu is a modal editor with modes for many different ways to use Python to create cool and interesting things.

Mu is written in Python and works on Windows, macOS, Linux and Raspberry Pi. The project's public facing website is https://codewith.mu/. We celebrate the work done by users of mu at https://madewith.mu/.

We have extensive developer documentation including a guide for setting up a development environment, contributor guidelines and some suggested first steps.

We want our community to be a friendly place. Therefore, we expect contributors and collaborators to follow our Code of Conduct.

Comments
  • Create a new .deb package so the editor is easy to install on Debian based systems.

    Create a new .deb package so the editor is easy to install on Debian based systems.

    We should package the "Mu" editor for Debian based systems. This will include Debian itself, Ubuntu and, of course, Raspbian.

    The package should have three dependencies: python3-pyqt5, python3-pyqt5.qsci and python3-pyqt5.qtserialport.

    We should only package the appropriate parts of this repository. The process for packaging and installing from such a package should be documented in the README here:

    https://github.com/ntoll/mu/tree/master/package

    opened by ntoll 95
  • One venv to rule them all

    One venv to rule them all

    Separate out the packages needed to support core Mu functionality (PyQt, black, pyflakes etc.) from packages needed to support different modes. A venv will be created on startup and pre-shipped wheels installed into it to support modes. 3rd-party packages will be installed into the same venv

    (Addresses #1070)

    opened by tjguk 86
  • Simple support for third party packages.

    Simple support for third party packages.

    This PR fixes #675.

    It has been tested on Linux (Ubuntu 18.04) but not Windows, OSX or Raspberry Pi. Please give feedback from testing in these environments.

    What does it do?

    This is the simplest possible third party package manager for a beginners' editor. Until now we have bundled a bunch of "third party" modules with Mu in the official installers, thus bloating Mu's size. Furthermore, our bundled modules go out of date and/or miss some important packages for folks. This new functionality allows users to simply specify packages to be installed from PyPI. It also allows users to remove packages.

    It is accessed via the "admin" dialog (accessed via the cog on the bottom right of the UI) and is one of the tabs found therein. The following GIF demonstrates it in action:

    mu_modules

    The user simply ensures the list of module names (one per line) reflects their requirements. To remove a module from the list, just remove its line. Python's pip command (which does the heavy lifting under the hood) will, of course, install dependencies as required. To keep things simple (this is a beginners' editor!) the notion of version number is ignored, and the latest version will be installed by default. Ergo, if a user needs to update a package, they should remove and re-install it.

    Currently, there is no attempt to handle conflicts between pre-packaged (in the installer) modules or the same module installed via this method. My hunch is to remove these pre-installed modules in favour of this mechanism. I would love to hear thoughts on this from folks!

    Packages installed in this way are available in both scripts run or debugged in Python 3 mode, or from within the Python 3 REPL (iPython shell).

    How Does it Work?

    There were several ways to skin this cat, and I've gone for the simplest I can think of.

    • The new tab for third party packages is added to the admin dialog. If, when the dialog is closed via "OK", there is a change in package state, then a new modal dialog launches to provide visibility of the package syncing process.
    • This new package related dialog simply contains a text area into which is piped information from pip and other functionality.
    • The recommended way to use pip is by launching it in a subprocess. The pip developers will not guarantee the internal API of the pip module. This is why things work the way they do: new packages are added to a list. The first new package is popped from the list and installed via pip in a subprocess. When the subprocess completes, if there are any more candidate packages to install, the process is repeated.
    • The --target flag is used to specify an OS specific writeable directory into which these packages will be installed. This directory is added to the Python path when running or debugging Python 3 scripts or using the Python 3 REPL.
    • Sadly, the pip command doesn't allow for targetting a "package directory" from which to remove packages. Ergo, Mu uses the list of packages that have been removed in the admin dialog to discover the metadata for them in the directory Mu uses for such packages. Happily, the metadata contains a list of all files related to each package. Mu simply iterates over these, deletes them and deletes any parent directories related to the module to be removed.

    That's it! All feedback most welcome!

    cc/@asweigart

    opened by ntoll 59
  • mu-editor hangs on macOS Big Sur

    mu-editor hangs on macOS Big Sur

    I have been using mu-editor successfully for a while under Catolina on my Mac. Today I upgraded the OS to Big Sur. Now the mu-editor does not open. When I launch it by clicking on the icon, the app just hangs. There are no error messages.

    I have to close the application through the "Force Quit Applications". In this window it shows that mu-editor is running but not responding.

    I re-installed the editor with the latest version from the website, but this did not work either.

    If you are reporting a bug, we would like to know:

    • What you were trying to do: Launch the mu-editor
    • What steps you took to make this happen: click on its icon
    • What you expected to happen: Editor to open
    • What actually happened: editor just hung - no error messages
    • Why this difference is problematic (it may not be a bug!): The pp no longer works and I cannot run Python!!
    • Technical details like the version of Mu you're using, your OS version and other aspects of the context in which Mu was running. macOS Big Sur V 11.0.1 mu_editor - the latest version (1.0.3? - hard to tell!)

    Can't provide a log file as the editor does not open.

    Please remember to attach a copy of the full log files for Mu. You can get the logs by clicking on the cog icon in the bottom right of the editor window. Click on the logs and use CTRL-A to select all, then CTRL-C to copy and CTRL-V to paste the contents into the issue.

    Thank you for contributing to Mu! :-)

    bug 3rd party OS: macOS 
    opened by ged99 55
  • Issue installing microbit mu on pitop

    Issue installing microbit mu on pitop

    Hi, I have been installing the python mu on the raspberry pi on a set of pitops (running pitop OS based on raspbian I believe). There seems to be a clash on installing this with installing the pitop speaker. For example, on one pitop I installed the pitop speaker first (sudo apt-get install -y pt-speaker) then when i tried t install mu (sudo apt-get install mu) I got this error image

    On another machine I got the same error when trying to install the pitop speaker after installing mu successfully. I have done sudo apt-get install each time. Wondered if there is some kind of clash between the two Thanks Gemma

    opened by GemmaMayLatham 52
  • How can I find out what version of Mu is installing on Raspberry PI?

    How can I find out what version of Mu is installing on Raspberry PI?

    I have a user who is trying to get speech working on the Raspberry Pi version of Mu, and it is failing with an error saying 'no module named speech'.

    I got them to do an update/install of mu from the command line, but it still does not work.

    a) How could they tell me what version of Mu is actually installed at the moment? b) what version of Mu on the Pi does the speech module get introduced? c) If the RPF have not updated the repo's, how can a user get the latest greatest version of Mu installed on the Raspberry Pi, without having to wait for this repo update to happen?

    Many thanks!

    opened by whaleygeek 49
  • Pyinstaller builds for Windows, Linux and OS X

    Pyinstaller builds for Windows, Linux and OS X

    Been playing with pyinstaller and CI services AppVeyor and Travis to automatically generate an self-contained executable build of Mu.

    As it currently stands, it uploads the builds to my AWS S3 bucket, which I don't mind maintaining for a little while, as I am in the free tier and the load expected during development will be quite minimal, but this is something we also need to discuss if it's worth at all to have, to move to a different service/account, or to discard.

    Downloads link: http://ardublockly-builds.s3-website-us-west-2.amazonaws.com/index.html?prefix=microbit

    For now only the Windows (32 bit build, so 64 bit OS compatible) and Linux x64 versions are currently working, OS X is still under work.

    Therefore, this pull request is a work-in-progress, submitted here for visibility and to get the review process started.

    • [x] Windows (32 bit build, 64 bit compatible) https://github.com/ntoll/mu/issues/25
    • [ ] OS X (version 10.8 or higher, or the 64 bit version of 10.6/10.7) https://github.com/ntoll/mu/issues/26
    • [ ] Linux 32 bit https://github.com/ntoll/mu/issues/27
    • [x] Linux 64 bit https://github.com/ntoll/mu/issues/27
    • [ ] Raspberry Pi 1 (ARMv6) https://github.com/ntoll/mu/issues/28
    • [ ] Raspberry Pi 2 (ARMv7) https://github.com/ntoll/mu/issues/28
    opened by carlosperate 40
  • Crash Report

    Crash Report

    REMEMBER TO ATTACH YOUR LOG FILE

    Version: 1.1.0.beta.4 Locale: en_US Platform: Windows 10 10.0.19041 AMD64

    Traceback (most recent call last):
      File "C:\Users\rumen\AppData\Local\Programs\Mu Editor\Python\lib\site-packages\mu\app.py", line 161, in run
        raise ex
      File "C:\Users\rumen\AppData\Local\Programs\Mu Editor\Python\lib\site-packages\mu\app.py", line 148, in run
        venv.ensure_and_create(self.display_text)
      File "C:\Users\rumen\AppData\Local\Programs\Mu Editor\Python\lib\site-packages\mu\virtual_environment.py", line 494, in ensure_and_create
        self.create()
      File "C:\Users\rumen\AppData\Local\Programs\Mu Editor\Python\lib\site-packages\mu\virtual_environment.py", line 623, in create
        self.create_venv()
      File "C:\Users\rumen\AppData\Local\Programs\Mu Editor\Python\lib\site-packages\mu\virtual_environment.py", line 654, in create_venv
        raise VirtualEnvironmentCreateError(
    mu.virtual_environment.VirtualEnvironmentCreateError: Unable to create a virtual environment using C:\Users\rumen\AppData\Local\Programs\Mu Editor\Python\pythonw.exe at C:\Users\rumen\AppData\Local\python\mu\mu_venv-38-20210531-234955
    
    
    has-logs 
    opened by efremovru 39
  • MicroPython mode for ESP32/ESP8266 (and others)

    MicroPython mode for ESP32/ESP8266 (and others)

    A mode allowing easy programming of ESP32/ESP8266 based boards as previously described in the comments of Issue #123. It has been tested in classrooms, and seems pretty stable at this point.

    The mode is based on Pyboard module from the MicroPython project as well as File-transfer operations from the AMPY tool. As AMPY supports most MicroPython devices, this mode should as well.

    The list of supported PIDs/VIDs of MicroPython devices should probably be extended considerably, I have added PID/VID for the hardware I have available.

    opened by dybber 39
  • Adding python module packages to deb dependencies

    Adding python module packages to deb dependencies

    Changes made to the deb control file to add the python module packages.

    We shouldn't use a post script to "pip install" the modules required, as that would go against the general philosophy of using the OS packaging system. So the modules have to be installed as packages, just as we've been doing with PyQt5.

    In this case these are the modules we needed:

    pyserial -> python3-serial pyflakes -> python3-flake8 pycodestyle -> python3-pep8

    As you can see we are installing the old pep8 named packaged instead of pycodestyle. As this was quite recent rename there is currently no new packages available, so I had to add a try/except ImportError to import with one name or the other. Hopefully it will not be that long before it is added and we can revert that to a single line import: https://osdir.com/ml/debian-python/2016-06/msg00041.html

    We still need to test this in a Raspberry Pi to see if the packages are also available there.

    opened by carlosperate 39
  • Tests flakiness and some test seems to be locking up in CI

    Tests flakiness and some test seems to be locking up in CI

    The GitHub Actions jobs have been queuing since yesterday. The grey icons are test runs I had to cancel as they were stuck there for 4h+:

    • https://github.com/mu-editor/mu/runs/1802206901?check_suite_focus=true
    • https://github.com/mu-editor/mu/runs/1802207019?check_suite_focus=true
    • https://github.com/mu-editor/mu/runs/1802207054?check_suite_focus=true
    image

    Other CI runs with a similar lock up:

    • https://github.com/mu-editor/mu/runs/1802309139?check_suite_focus=true
    • https://github.com/mu-editor/mu/runs/1802424340?check_suite_focus=true
    • https://github.com/mu-editor/mu/runs/1802424319?check_suite_focus=true
    • https://github.com/mu-editor/mu/runs/1802285428?check_suite_focus=true

    Update

    There was originally 2 issues, one to do with dependencies in Python 3.8 (already fixed) and another problem not yet identified where some runs get stuck: https://github.com/mu-editor/mu/issues/1266#issuecomment-772083787

    bug 
    opened by carlosperate 37
  • make: Update Linux Docker recipe to create `.tar` file from `.AppImage`.

    make: Update Linux Docker recipe to create `.tar` file from `.AppImage`.

    This way the .AppImage file will retain its executable rights and users will be able to double click it as soon as it's uncompressed, as it is currenty indicated in the installations instructions from the website.

    opened by carlosperate 0
  • Double-click on Tab Doesn't Save Other (*.*) - it adds .py in Mac Mu 1.2.0,

    Double-click on Tab Doesn't Save Other (*.*) - it adds .py in Mac Mu 1.2.0, "Save" button does.

    What were you trying to do?

    Double-click a tab & Save As a file with .toml extension

    What steps did you take to trigger the issue?

    Hi! I seem to have found a weird bug in Mu 1.2 on the Mac. I'm running under macOS Moterrey. So I've used Mu to create a settings.toml file as per Adafruit's guide for the Raspberry Pi Pico W. When I advise my students to use Mu I advise them to double-click the tab to make sure they're saving to the correct volume. But when I do this in Mu & select the "Other (.)" option for file type in the Save As dialog box, Mu still saves the file with the .py extension. Curiously, even if I try to remove the .py in the Finder with right-click Rename, the .py seems to remain if I do an os.listdir() from the CircuitPython REPL in Mu. BUT if I click the "Save" button, and do the same: select "Other (.)" and give it the name settings.toml (again, no .py used in either), this seems to properly save the file without the .py extension. This is definitely a repeatable recipe that shows the same results when tried again on my Mac. It'd be great to see this fixed, if I have this correct as a Mu problem, so I could avoid any student confusion. Thanks a bunch for your hard work!

    What did you expect to happen?

    .toml to be the extension at the end, not .py

    What actually happened?

    .py was added. Weirdly, even when I tried to rename using the finder, .py remained the extension on the CIRCUITPY volume. I was using a Raspberry Pi Pico with CircuitPython 8, but that likely doesn't matter.

    Operating System Version

    macOS Monterrey 12.6

    Mu Version

    1.2.0

    Other Info

    No response

    Editor Log

    No response

    opened by gallaugher 0
  • REPL in night theme shows blank context help

    REPL in night theme shows blank context help

    What were you trying to do?

    wanted to see context help when using REPL in night theme

    What steps did you take to trigger the issue?

    Select night theme. Select REPL. In the REPL window, type print( and view context help. The context help window appears but it's all white.

    What did you expect to happen?

    expected to see white text on a dark background

    What actually happened?

    Context help is displayed as white text on a white background.

    Operating System Version

    Windows 10 Business, Version 22H2, 19045.2364, OS Build 19045.2364

    Mu Version

    1.2.0

    Other Info

    I tested this with day theme and context help does appear as it should. I believe when in night theme, the context help is displaying white text (correct) on a white background, but in either dark theme the context help background needs to be changed to dark.

    Editor Log

    mulog.txt

    opened by qbub 0
  • Limit clicking in the serial panel to moving back a line

    Limit clicking in the serial panel to moving back a line

    This is an attempt at mitigating #1505 by implementing my 3rd suggestion: limiting the cursor movement to the last line (when moving backwards). The change is not limited to clicking, the same function is used when moving the cursor with the arrows while there's text currently selected, which should not be a big deal.

    • When in the REPL the cursor movements are what you expect when clicking inside the last line.
    • Clicking above the last line, even when in the REPL, does nothing, because the cursor is
    • In the most common case, when the serial output is limited to normal prints(), the last line is empty, so that works for us.
    • When not in the REPL and printing with end="" you can click in the last line and still send a bucket-load of characters.

    I have only tested on Mac though, so if there's some platform-specific quirk, it would be nice to test that.

    Are there cases (maybe outside of Circuitpython) where we would want to allow to move backwards beyond the line start ?

    opened by Neradoc 0
Releases(v1.2.0)
  • v1.2.0(Nov 15, 2022)

    This release introduces Snek mode, fixes some minor bugs, addresses some usability gremlins and adjusts some capabilities to make things tidier. Much of this work was done over the summer at the code-sprints at EuroPython 2022 in Dublin. Kudos and thanks to all the new contributors to Mu.

    Please provide bug reports or feedback via:

    https://github.com/mu-editor/mu/issues/new

    • Thanks to @keith-packard for Snek mode. Snek is a Python inspired language for processors too small even to run MicroPython.
    • @tmontes contributed changes so Mu builds to Linux AppImages (an easy way to package application for Linux).
    • Minor fixes by @stratakis in the Russian translation.
    • @carlosperate fixed many minor glitches and gremlins.
    • @carlosperate was on fire :fire: with fixes needed to ensure Mu continues to work with very old versions of OSX (as used in many educational institutions).
    • Again, thanks to @carlosperate, AppImage with Wayland no longer the setting of an environment variable to make it work properly.
    • The web mode includes simple and easy to use integration with beginner and education friendly web hosts, PythonAnywhere.
    • @agdales, @Jeffrey04, @johannaengland and @AnjaVerboven contributed new messages of the day as part of their onboarding at EuroPython.
    • @tonybaloney contributed several Windows based fixes and clean-ups.
    • @johannaengland and @prcutler were on fire tidying up and fixing docs at EuroPython.
    • A bug was fixed in the web mode relating to the resolution and/or recreation of the assets directory (in which images, css and templates were to be found).
    • Or friend at Adafruit, @tannewt made the necessary changes so Mu handles OSC commands gracefully (see the PR for more details).
    • New contributor, @zigit ensured "Unexpected Maker" based ESP boards are correctly detected.
    • Thanks to @Jayman2000, error messages are correctly capitalized (or not) to avoid potential confusion.
    Source code(tar.gz)
    Source code(zip)
    MuEditor-Linux-1.2.0-x86_64.AppImage(159.07 MB)
    MuEditor-Linux-1.2.0-x86_64.tar(161.23 MB)
    MuEditor-OSX-1.2.0.dmg(113.35 MB)
    MuEditor-win64-1.2.0.msi(158.48 MB)
  • v1.1.1(Feb 22, 2022)

    This is the first stable release of the 1.1.* version of Mu. The following changes have been made since the last beta:

    • Minor clean ups in the Makefile.
    • Thank you to @microbit-mark for updating the board IDs to support version 2.2 of the device.
    • Updates to the Chinese translation by @CSharperMantle. 謝謝。
    • Updates to the Slovak translation by @bletvaska. Ďakujem.
    • The foundations of a brand new Russian translation of Mu by @grovz with contributions from @iamdbychkov. спасибо!
    • Thanks to @MinoruInachi (with feedback from @odaki) for a revised Japanese translation for Mu. ありがとうございます
    • Due to complicated dependency problems, we've updated the bundled version of Flask to 2.0.3. Thanks to @carlosperate for quickly resolving this problem.
    • Due to limitations in the way Windows MSI installers work, we're releasing this version as 1.1.1 (rather than 1.1.0).

    Many thanks to everyone who has worked so diligently getting to this stable release.

    Source code(tar.gz)
    Source code(zip)
    MuEditor-osx-1.1.1.dmg(117.05 MB)
    MuEditor-win64-1.1.1.msi(155.74 MB)
    Mu_Editor-1.1.1-x86_64.AppImage(163.74 MB)
  • 1.1.0-beta.7(Dec 22, 2021)

    • We expect this release to be the last beta before the final 1.1 release in the new year of 2022. Season's greetings to everyone using or contributing to Mu, and here's wishing you all a flourishing and fulfilling 2022.
    • As always there have been the usual minor bug fixes and clean ups from the core team of maintainers. Thank you so much for all that you do to support the continued development of Mu.
    • Thanks to the ever-green @keith-packard for his contribution to ensure icons on the button bar continuously scale based on the window width. This looks really smooth and slick.
    • Tinsel laden @tmontes has made a number of contributions around tooling for internationalization (i18n) of Mu. These include using the Babel package for generating the required translation files from our source code, and updating the Makefile (and make.py) so the process can be automated.
    • Xmassy @xbecas is a new joiner to the core team and we're very please to have him with us since he has done a huge amount of work on updating and curating the translation files needed for i18n. Thanks to his work, translators for all the other existing locales need not have to go through the string generation/update steps (he's done that for you already!).
    • Both @xbecas and @tmontes have made extensive updates to our pt-PT (Portuguese) translation. Feliz Natal e Próspero Ano Novo.
    • This was swiftly followed by a welcome contribution by @rffontenelle the red-nosed translator, who made extensive updates to the pt-BR (Brazilian Portuguese) translation. Many thanks Rafael, you continue to demonstrate why the Brazilian FLOSS community is such a vibrant place, and we hope your work will help beginner coders in Brazil take their first steps to join your community. Boas Festas!
    • Now that the upstream PyGame / PyGameZero packages have been updated and repackaged, @tmontes has ensured we use these (rather than our own custom builds) in our installers for Windows and OSX. Many thanks to our friends and collaborators in those projects (cc/ @illume and @lordmauve).
    • Once in royal @devdanzin's repos, stood some lowly bugs to fix. These include ensuring empty path handling is properly handled by get_save_path, correct highlighting of both f-strings and triple quoted strings in the editor widget, fixing a comment-toggling bug that deleted the first character of the next line under certain circumstances and more robust handling of environment variables. Wow, @devdanzin was on fire..! (...and has further work in development, thank you so much for your continued contributions.)
    • Carolling @carlosperate has put a huge effort in. He has triaged various crash reports, administered our continuous integration pipeline, and reviewed and merged much of the work described above. He also ensured our version numbering for Mu is no longer odd, and meets the guidelines set out in PEP440.
    • Good Tim Golden (@tjguk) fast typed out, a venv that's crisp and even. His outstanding work on making Python virtual environments work in some of the most inhospitable computing environments ever found is miraculous. Tim's genius is to know exactly the right intervention to make, and in this case his epic addition of -I to the Mu codebase will help ensure the user's virtual environments are properly isolated.
    • @tmonter has updated the pup packager we use to create our installer. This should fix a problem found on the new ARM based Macs. He has also made significant progress on a cross-distro Linux package which we hope will make an appearance in the not-too-distant future.
    • Finally, Nicholas (@ntoll) promises never to do another Christmas themed changelog. :christmas_tree: :santa: :tada:
    Source code(tar.gz)
    Source code(zip)
    Mu-Editor-Win64-1.1.0b7.msi(145.66 MB)
    Mu.Editor.1.1.0b7.dmg(108.22 MB)
    Signed-Mu-Editor-1.1.0b7.msi(152.77 MB)
  • 1.1.0-beta.6(Oct 6, 2021)

    • There have been the usual minor bug fixes and clean ups from various regular contributors and some new ones too. Thank you for your careful and well targetted changes.
    • Carlos (@carlosperate) fixed some packaging problems relating to the iPython kernel bundled with Mu.
    • Martin (@dybber) fixed a couple of problems relating to the stopping of child processes (Flask and scripts stopped via KeyboardInterrupt in Linux).
    • The web mode checks for the availability of templates in the local directory tree before starting up. If a template directory isn't found in the expected location, then the user sees a helpful message describing the problem and what they need to do to fix it.
    • Mu's splash screen no longer always appears on top of everything else on the user's desktop. The splash screen now also logs the progress of installing the various packages needed on first install. Thanks to Carlos for these changes.
    • A new admin/settings option has been added to allow users to manually change the translation Mu uses for its interface. Updating this setting requires a restart of Mu. Zander (@ZanderBrown) contributed the icon/glyph to indicate the relevant tab is for translation related settings (not entirely obvious if Mu's UI is using a language you don't understand and you're looking for the setting that relates to translations). The icon makes this clear.
    • On some desktop windowing systems there is a bug that means windows re-open at a position higher up the screen, and so may appear off the top of the screen. We've ensured this never happens with Mu. If Mu starts with any part of the window off the screen, the window is moved to be within the dimensions of the screen. This was a weird one to track down and fix.
    • Many thanks to Ethan Spoelstra (@espoelstra) who contributed a change so Crostini on ChromeOS is used to return the correct CIRCUITPY path if it exists.
    • Huge thanks to Keith Packard (@keith-packard) for several contributions to this release of Mu. Keith refactored the way in which Mu handles pasting in the REPL window so it works correctly and more broadly across operating systems.
    • Keith also fixed some font related issues in the REPL.
    • Keith was on fire with a couple more contributions relating to SVG icons in the buttons in Mu. We're very grateful to Ben Williams (@Rybec) for putting in the work to make our button icons SVG files. Keith made the code changes to implement this.
    • Thanks to Miro Hrončok (@hroncok) for pointing out a change in Python 10 which would break some of our UI calls into PyQt, and who provided a patch to fix things.
    • Some minor clarifications in our developer documentation (https://mu.rtfd.io).
    Source code(tar.gz)
    Source code(zip)
    Mu-Editor-Win64-1.1.0b6.msi(145.43 MB)
    Mu.Editor.1.1.0b6.dmg(109.25 MB)
  • 1.1.0-beta.5(Jul 5, 2021)

    • Several of us made minor updates and fixes (such as ensuring various packages had explicit dependency versions listed, updating versions for Mu's own dependencies and so on).
    • Right clicking on highlighted text in the editor, with the REPL active, now has an additional option added to the context menu: to correctly paste the text from the editor into the REPL. Thanks to Professor Chris Rogers of Tufts University for suggesting this feature.
    • The multi-talented Dan Halbert (@dhalbert) of Adafruit very kindly fixed a bug in the Adafruit board handling when on run on new Apple M1 hardware. Thank you Dan for your valuable contribution.
    • A huge amount of work by Tim (@tjguk) and Carlos (@carlosperate) has gone into analysing the crash reports from recent beta releases of Mu. This has resulted in significant effort to address many of the bugs encountered, many of which related to edge cases encountered by the new virtual environment feature. Tim and Carlos have created many fixes and checks to ensure these bugs are either completely fixed or are, at least, mitigated in more helpful ways. This has been a challenging and "fiddly" bit of work, so kudos and thanks, as always, to both Tim and Carlos for their continued efforts.
    • Carlos has also updated the version of MicroPython used in the BBC micro:bit mode to the latest 2.0.0-beta.5 version.
    • In addition, Carlos has ensured that the micro:bit mode flashes files onto the micro:bit using the correctly memory aligned hex string.
    • Github user @ajs256 has ensured the crash reporter doesn't kick in when a KeyboardInterrupt is triggered in Mu (CTRL-C).
    • Sometimes in Mu for Linux, the expected .py file extension wasn't added to new files. This depended on the user's graphical shell. Mu now checks the output from the shell and, if requires, will add .py itself.
    • Various fixes to Mu's logging make it more robust, clear and useful.
    • Tiago (@tmontes) fixed a late breaking bug in packaging Mu for OSX. All fixed in a matter of hours. Amazing work!
    Source code(tar.gz)
    Source code(zip)
    Mu-Editor-Win64-1.1.0b5.msi(152.41 MB)
    MuEditor-1.1.0b5.dmg(117.40 MB)
  • 1.1.0-beta.4(Apr 18, 2021)

    • Carlos made many changes to clean up the specification for required modules used by the installer. This will make supporting and tracking Mu's dependencies MUCH easier. Thank you Carlos!
    • Huge thanks to Dan Halbert of Adafruit who contributed a significant amount of refactoring to the CircuitPython mode. As a result Mu now uses the adafruit-board-toolkit module for device identification, among many other helpful changes described in Dan's pull request. Thank you Dan..!
    • Carlos was on fire... he also fixed a bug in the file-copy dialog when the context menu was opened with an empty list of files.
    • Carlos (again), fixed some outstanding documentation issues for supporting Raspbian Buster (and newer). These are now at https://mu.rtfd.io/.
    • Carlos (again, again) tidied up various aspects of the Makefile so there is only a single source of truth for running various utilities and commands.
    • Logging was another focus for this release. Now that we have a few weeks worth of crash reports we've been able to look at the parts of the application that cause most grief and add extra-logging in various locations. Tim put in a great effort to make sure the "first run" and other virtual environment based aspects of Mu now have clearer and more useful logging and throw more useful exceptions, closer to the source of the problem, for the resulting crash report. Carlos ensured the IPython kernel installation was properly logged.
    • We ensured various key packages were pinned to particular versions to maximise compatibility with older versions of Python still found in schools.
    Source code(tar.gz)
    Source code(zip)
    Mu-Editor-Win64-1.1.0b4.msi(145.15 MB)
    Mu.Editor.1.1.0b4.dmg(110.61 MB)
  • 1.1.0-beta.3(Mar 29, 2021)

    This is a beta release and may contain bugs or unfinished features. Please provide bug reports or feedback via: https://github.com/mu-editor/mu/issues/new

    • During beta phase, we're moving to a fortnightly release cadence. Expect beta 4 on around the 12th April.
    • The final version of the Mu splash screen was delivered. Huge thanks to the extraordinarily talented Steve Hawkes (@hawkz) of The Developer Society for his generous artistic support, patience and humorous approach.
    • Thanks to a recent update in PyGame Zero, we're back to using the official package from PyPI, rather than our patched fork, in the installer.
    • Both Tim and Carlos have contributed updates, fixes and tests to address a bug affecting Windows users who may have a space in the file path upon which Mu is found. This was a difficult bug to reproduce but Tim did a lot of digging to isolate the cause with as much confidence as is possible when it comes to such things. Carlos did a bunch of thankless and fiddly test related work so testing with spaces in the path is part of our test suite. Work on this is ongoing so expect further improvements in upcoming releases. As always, many thanks for these efforts.
    • Tim addressed a wheel/sdist related problem that was causing odd side effects with regard to dependancies.
    • A strange bug, where it was not possible to install third-party packages on first run of Mu, opened up a deep rabbit hole of investigation. In the end Tim was able to fix this AND address the source of a warning message from Qt when Mu was starting for the first time.
    • The splash screen code was rewritten in such a way that objects relating to the splash screen will always be garbage-collected by Python and destroyed by Qt5. Previously, they existed for the full duration of the application, not really causing any problems, but "in limbo" nonetheless.
    • The crash reporting tool has had a minor update so the user is reminded to attach their log file to the bug report, along with an indication of where to find the log file.
    Source code(tar.gz)
    Source code(zip)
    Mu-Editor-Win64-1.1.0b3.msi(145.18 MB)
    Mu.Editor.1.1.0b3.dmg(110.69 MB)
  • 1.1.0-beta.2(Mar 15, 2021)

    From the release notes:

    • This is the first public beta release (beta 1 was created for testing by the core development team).
    • Many minor bug fixes to the existing new features found in beta 1 (see below).
    • Many thanks to Martin Dybdal for his work on improving the admin panel.
    • Carlos made significant changes so Mu can be packaged with very recent versions of Python. Carlos also made various changes relating to the status of Python packages contained within the official installer.
    • Many thanks to Dan Pope for assistance with an upgraded version of PyGameZero (which uses the latest version of PyGame - kudos to René and the other developers of PyGame for the recent improvements).
    • Various fixes to the UI so that panes are easier to resize and the themes are correctly applied to the REPL (thanks again to Martin for these fixes).
    • Carlos also contributed fixes relating to the micro:bit mode (compatibility with versions 1 and 2).
    • Tim has made herculean efforts to ensure the creation and checking of Mu's virtual environment is robust and easy to maintain.
    • A new crash reporting feature has been added. If Mu breaks the user will be redirected to the endpoint codewith.mu/crash with details of the crash and an option to create a bug report. This ensures Mu crashes are handled more gracefully, and the user is able to see the error that caused the crash.
    • A new animated splash screen has been added so the initial creation of Mu's virtual environment happens in such a way that the user can see progress is being made, and updates are logged on the splash screen for the user. If Mu encounters a problem at this early stage, the splash screen recovers and the new crash reporting feature kicks in. The current animation was created by Steve Hawkes (thank you) with a much more polished version promised very soon..!
    • Behind the scenes, Tiago has continued to make outstanding work on the pup tool we use to create the installers for Windows 64/32 bit and MacOS X. This beta release will be the first to use installers created with pup.
    • Known bug - on first ever start of Mu, if in Python3 mode the package manager will not work. Re-starting Mu fixes this (i.e. from second and subsequent starts). We're tracking this problem via this issue.
    Source code(tar.gz)
    Source code(zip)
    Mu-Editor-Win64-1.1.0b2.msi(145.18 MB)
    Mu.Editor.1.1.0b2.dmg(110.74 MB)
  • 1.1.0-beta.1(Jan 31, 2021)

    From the CHANGELOG:

    • A new mode for ESP8266/ESP32 devices running MicroPython. This work and a significant amount of related refactoring was contributed with Viking like energy and efficiency by Martin Dybdal. This work has meant it was relatively easy to create two further new modes...
    • New mode for Lego Spike devices (thanks to Chris and Ethan at Tufts University for the help and support).
    • New mode for Raspberry Pi Pico (thanks to Zander, Martin and Carlos for the extensive testing).
    • Updates to the Microbit mode made by Spanish source-code wrangler extraordinaire (and resident Microbit expert) Carlos Pereira Atencio. The Microbit mode now supports versions 1 and 2 of the board.
    • Various bits of artwork used in the application have been updated (including a new [temporary] animated splash screen). Thanks to devdanzin for choreographing the initial work on the splash screen at short notice.
    • A complete re-write of the virtualenv and third party package handlers by the hugely talented Tim Golden. This was a long term and difficult refactoring project which Tim has delivered with great aplomb. This should make package handling much smoother and simpler.
    • Various smallish UI fixes, enhancements and smoothing by devdanzin. Thank you for these contributions - they really make a difference to the ease of use and friendly feel of Mu.
    • This version of Mu is packaged with stand-alone installers for Windows and OSX by the wonder that is PUP - a new packaging tool by our very own Tiago Montes ~ Portugal's Premier Python Packager Par-excellence. We have big plans for PUP... watch this space. :-)
    • Many many many minor bug fixes contributed by many many many people to whom we are eternally grateful.
    Source code(tar.gz)
    Source code(zip)
  • 1.0.3(Jan 26, 2020)

    This is a bugfix release to address OSX Catalina changes which caused Mu to render incorrectly.

    Full list of the (minor) changes can be found in the changelog here: https://mu.readthedocs.io/en/latest/changes.html#id1

    Please see the website here: https://codewith.mu/ Developer documentation here: https://mu.readthedocs.io/en/latest/index.html Project blog here: https://madewith.mu/

    Source code(tar.gz)
    Source code(zip)
    mu-editor.dmg(104.04 MB)
    mu-editor_1.0.3_win32.exe(70.39 MB)
    mu-editor_1.0.3_win64.exe(77.00 MB)
  • 1.1.0-alpha.2(Jul 5, 2019)

    This is the second alpha release of the next 1.1 version of Mu. It includes several new features or improvements:

    • A new Web mode.
    • A Slovak translation.
    • The Adafruit mode has been renamed to CircuitPython mode.
    • Lots of tidy-ups, fixes and squashed bugs.

    The full list of the changes can be found here: https://mu.readthedocs.io/en/latest/changes.html#alpha-2

    Please see the website here: https://codewith.mu/ Developer documentation is here: https://mu.readthedocs.io/en/latest/index.html The project's blog can be found here: https://madewith.mu/

    Source code(tar.gz)
    Source code(zip)
    mu-editor_1.1.0-alpha.2_osx.dmg(81.44 MB)
    mu-editor_1.1.0-alpha.2_win32.exe(59.40 MB)
    mu-editor_1.1.0-alpha.2_win64.exe(65.52 MB)
  • 1.1.0-alpha.1(Mar 25, 2019)

    This is the first alpha release of the next 1.1 version of Mu. This includes three new features:

    • Third party package management.
    • Code tidying with Black
    • A new ESP8266/ESP32 mode.

    There are also many bug fixes. The full list of changes can be found in the change-log: https://mu.readthedocs.io/en/latest/changes.html#alpha-1

    Please see the website here: https://codewith.mu/ Developer documentation here: https://mu.readthedocs.io/en/latest/index.html Project blog here: https://madewith.mu/

    Source code(tar.gz)
    Source code(zip)
    mu-editor_1.1.0-alpha.1_osx.dmg(143.35 MB)
    mu-editor_1.1.0-alpha.1_win32.exe(86.44 MB)
    mu-editor_1.1.0-alpha.1_win64.exe(95.57 MB)
  • 1.0.2(Jan 15, 2019)

    This is Mu 1.0.2. This is a bug-fix release. The only other enhancements to Mu have been updates to MicroPython on the micro:bit and more translations.

    Details of the full list of changes can be found in the change-log: https://mu.readthedocs.io/en/latest/changes.html#id1

    Please see the website here: https://codewith.mu/ Developer documentation here: https://mu.readthedocs.io/en/latest/index.html Project blog here: https://madewith.mu/

    Source code(tar.gz)
    Source code(zip)
    mu-editor_1.0.2_osx.dmg(143.82 MB)
    mu-editor_1.0.2_win32.exe(85.47 MB)
    mu-editor_1.0.2_win64.exe(94.60 MB)
    portamu_1.0.2_osx.zip(170.63 MB)
  • 1.0.1(Oct 1, 2018)

    This is Mu 1.0.1. This is a bug-fix release. The only other enhancements to Mu have been updates to MicroPython on the micro:bit and more translations.

    Details of the full list of changes can be found in the change-log: https://mu.readthedocs.io/en/latest/changes.html#id1

    Please see the website here: https://codewith.mu/ Developer documentation here: https://mu.readthedocs.io/en/latest/index.html Project blog here: https://madewith.mu/

    Source code(tar.gz)
    Source code(zip)
    mu-editor_1.0.1_osx.dmg(151.33 MB)
    mu-editor_1.0.1_win32.exe(85.03 MB)
    mu-editor_1.0.1_win64.exe(94.17 MB)
    portamu_1.0.1_win32.zip(118.99 MB)
    portamu_1.0.1_win64.zip(136.76 MB)
  • v1.0.0(Jul 20, 2018)

  • v1.0.0.rc.1(Jul 16, 2018)

  • v1.0.0.beta.17(Jul 9, 2018)

    This is another significant release with many changes and bug-fixes, the full details of which can be found here: https://mu.readthedocs.io/en/latest/changes.html#beta-17

    This version of Mu is feature complete for 1.0. We expect a release candidate containing bug fixes to follow this release (in a matter of days). The final 1.0 release will follow soon after.

    Please see the website here: https://codewith.mu/ Developer documentation here: https://mu.readthedocs.io/en/latest/index.html

    Source code(tar.gz)
    Source code(zip)
    mu-editor_beta17_osx.dmg(132.71 MB)
    mu-editor_beta17_win32.exe(84.73 MB)
    mu-editor_beta17_win64.exe(93.86 MB)
  • v1.0.0.beta.16(Jun 20, 2018)

    This is a significant update. The full change log can be found here: https://mu.readthedocs.io/en/latest/changes.html#beta-16

    We expect a beta.17 to quickly follow this release, then a release candidate and then a final 1.0 release.

    Please see the website here: https://codewith.mu/ Developer documentation here: https://mu.readthedocs.io/en/latest/index.html

    Source code(tar.gz)
    Source code(zip)
    mu-editor_beta16_osx.dmg(127.75 MB)
    mu-editor_beta16_win32.exe(84.72 MB)
    mu-editor_beta16_win64.exe(93.85 MB)
  • v0.9.13(Nov 6, 2016)

  • v0.9.12(Oct 23, 2016)

    • Change the default Python directory from ~/python to ~/mu_code.
    • Add instructions for installing PyQt5 and QScintilla on Mac OS.
    • Update to latest version of uFlash.
    • Add highlighting of search matches.
    • Check if the script produced is > 8k.
    • Use a settings file local to the Mu executable if available.
    • Fix bug with highlighting code errors in Windows.
    • Check to overwrite an existing file on the micro:bit FS.
    • Start changelog
    Source code(tar.gz)
    Source code(zip)
    mu-0.9.12.linux.bin(34.95 MB)
    mu-0.9.12.osx.zip(18.29 MB)
    mu-0.9.12.win.exe(27.70 MB)
Owner
Mu
A beginner's code editor.
Mu
Leo is an Outliner, Editor, IDE and PIM written in 100% Python.

Leo 6.3, http://leoeditor.com, is now available on GitHub. Leo is an IDE, outliner and PIM. The highlights of Leo 6.3 leoAst.py: The unification of Py

Leo Editor 1.4k Dec 27, 2022
A small, simple editor for beginner Python programmers. Written in Python and Qt5.

Mu - A Simple Python Code Editor Mu is a simple code editor for beginner programmers based on extensive feedback from teachers and learners. Having sa

Mu 1.2k Jan 03, 2023
JupyterLite is a JupyterLab distribution that runs entirely in the browser power by wasm

JupyterLite is a JupyterLab distribution that runs entirely in the browser built from the ground-up using JupyterLab components and extensions.

Jeremy Tuloup 76 Dec 13, 2022
Frappe tinymce - Frappe app to replace default text editor with tinymce

Frappe tinyMCE tinyMCE Text Editor for frappe apps Replace frappe's Quill Text E

Shridhar Patil 23 Nov 16, 2022
Python-Text-editor: a simple text editor on Python and Tkinter

Python-Text-editor This is a simple text editor on Python and Tkinter. The proje

Innokentie 1 Jan 03, 2022
A basic Python IDE made by Anh Đức

Python IDE by Anh Đức A basic Python IDE made with python module tkinter. Hope you enjoy this IDE! V 1.3 "Open Terminal from IDE" feature V 1.2 Now yo

1 May 30, 2022
openBrowsser is a Sublime Text plug-in, which allows you to add a keyboard shortcut, to directly access a website from a selection.

openBrowsser is a Sublime Text plug-in, which allows you to add a keyboard shortcut, to directly access a website from a selection. Instal

Florian COLLIN 1 Dec 14, 2021
A simple Notepad-like editor written in Python

monkepad A simple Notepad-like editor written in Python Since MonkePad is written in one file, all your customization can be done without much trouble

5 Dec 28, 2021
An experimental code editor for writing algorithms

Algojammer Algojammer is an experimental, proof-of-concept code editor for writing algorithms in Python. It was mainly written to assist with solving

Chris Knott 2.9k Dec 27, 2022
A free Python source code editor and Notepad replacement for Windows

Website Download Features Toolbar Wide array of view options Syntax highlighting support for Python Usable accelerator keys for each function (Ctrl+N,

Mohamed Ahmed 7 Feb 16, 2022
PlugNik is a simple implementation of plugin repository for JetBrains Application.

PlugNik is a simple implementation of plugin repository for JetBrains Application.

roy reznik 11 Jun 30, 2022
Using the jedi autocompletion library for VIM.

jedi-vim - awesome Python autocompletion with VIM jedi-vim is a VIM binding to the autocompletion library Jedi. Here are some pictures: Completion for

Dave Halter 5.1k Dec 31, 2022
A code-completion engine for Vim

YouCompleteMe: a code-completion engine for Vim NOTE: Minimum Requirements Have Changed Our policy is to support the Vim version that's in the latest

24.5k Dec 30, 2022
Jupyter Interactive Notebook

Jupyter Notebook The Jupyter notebook is a web-based notebook environment for interactive computing. Notice Please note that this repository is curren

Project Jupyter 9.7k Jan 02, 2023
ReText: Simple but powerful editor for Markdown and reStructuredText

Welcome to ReText! ReText is a simple but powerful editor for Markdown and reStructuredText markup languages. One can also add support for custom mark

ReText 1.6k Dec 23, 2022
Write maintainable, production-ready pipelines using Jupyter or your favorite text editor. Develop locally, deploy to the cloud. ☁️

Write maintainable, production-ready pipelines using Jupyter or your favorite text editor. Develop locally, deploy to the cloud. ☁️

Ploomber 2.9k Jan 06, 2023
awesome Python autocompletion with SublimeText

SublimeJEDI SublimeJEDI is a Sublime Text 3 and Sublime Text 2 and plugin to the awesome autocomplete library Jedi Python Version Support Sublime Jedi

Serhii Ruskykh 933 Dec 08, 2022
A WYSIWYG layout editor for Jupyter widgets

Based on the React library FlexLayout, ipyflex allows you to compose the sophisticated dashboard layouts from existing Jupyter widgets without coding. It supports multiple tabs, resizable cards, drag

Duc Trung LE 93 Nov 24, 2022
Official repository for Spyder - The Scientific Python Development Environment

Copyright © 2009–2021 Spyder Project Contributors Some source files and icons may be under other authorship/licenses; see NOTICE.txt. Project status B

Spyder IDE 7.3k Dec 31, 2022
Komodo Edit is a fast and free multi-language code editor. Written in JS, Python, C++ and based on the Mozilla platform.

Komodo Edit This readme explains how to get started building, using and developing with the Komodo Edit source base. Whilst the main Komodo Edit sourc

ActiveState Komodo 2k Dec 28, 2022