Eng:Python

Python is a programming language that is generally considered to be very readable and makes a good first programming language.

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

Extensions
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 you to retrieve the Scratch API from the project in Python code.

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 scratch.py)
 * scratch.py ([ 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:


 * [ scratch2web.py] by TheSuccessor  lets you use Scratch as a web server

Software
Scratch-related software written in Python:


 * M30W, previously Emerald  a text version of Scratch

Scratch-related libraries that you can use in your Python code:


 * Kurt  for reading/writing Scratch project files

Trivia
Scratch 2.0 uses 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.