SandCastleIcon.png This page has links to websites or programs not trusted by Scratch or hosted by Wikipedia. Remember to stay safe while using the Internet, as we can't guarantee the safety of other websites.
SandCastleIcon.png This article documents something which is not associated with Scratch, the Lifelong Kindergarten Group, or the Massachusetts Institute of Technology.

Python is a programming language that is generally considered to be very readable and makes a good first programming language. It was first released in 1991 by Guido van Rossum.[1]

This page describes using Python with Scratch and various Scratch-related Python programs.


There are libraries that make it easier to write Python code that communicates with Scratch.

Note that the extension mechanisms for Scratch 1.4 and Scratch 2.0 are quite different, and are not compatible.

Scratch 2.0

  • blockext — for writing extensions that are compatible with both Scratch 2.0 and Snap!. Generates extension files automatically. Clean programming interface. Needs documentation.
  • pyscratch2 — allows retrieval of the Scratch API from the project in Python code. (does not work on Mac computers)
  • ScratchAPI — Open source Python library providing an interface for the Scratch APIs.

Scratch 1.4

See the guide for setting up Remote Sensor Connections in Scratch 1.4.

  • Scratra — Provides a clean interface for responding to broadcasts and sensor updates using decorators (based on
  • (forum page) by pquiza — provides code for communicating with Scratch
  • Scratch Space by Magnie — a Mesh server

Projects that interact with Scratch using Python and remote sensor connections:

  • by TheSuccessor — allows usage of Scratch as a web server


Scratch-related software written in Python:

  • M30W, previously Emerald — a text version of Scratch

Scratch-related libraries that can be used in Python code:


The subject of this article or section has changed dramatically and requires updating. Please keep in mind that some of the information or images may not be accurate or relevant to the current version of Scratch, the Scratch website, or the article subject. (April 2019)
See also: Scratch 2.0

Scratch 2.0 used Python as its back-end, or server-side code. This means that pages on the site (such as a studio or profile page) is produced by Python code. Between Python and the front-end is Django, a Python library for creating large database-driven websites.



External Links