There are a few different implementations of Python; here's a brief overview of each of them.


The first implementation, and the one in widest use, is the implementation written in C. This is the implementation usually meant when people refer to "Python", but it's called CPython when people want to distinguish between it and an alternative implementation of the Python language.

Stackless Python

Stackless Python is a fork of CPython, but not one that diverges very far from the main tree. Christian Tismer rewrote the main interpreter loop of CPython to minimize its use of the C stack; in particular, calling a Python function in Stackless Python doesn't occupy any more room on the C stack. This means that, while CPython can only recurse a few thousand levels deep before filling up the C stack and crashing, Stackless can recurse to an unlimited depth. Stackless is also significantly faster than CPython (around 10%), supports continuations and lightweight threads, and has found a community of highly skilled users who use it to do things such as writing massively-multiplayer online games. The Stackless Python home page is at


Jython is a reimplementation of Python, written in Java instead of C. (It was originally named JPython, but the name had to be changed for silly trademark reasons.) Jython compiles Python code into Java bytecodes, and can seamlessly use any Java class directly from Python code, with no need to write an extension module first as is necessary for CPython. The Jython home page is at


IronPython is an implementation of Python that runs atop the .NET's Common Language Runtime. It's still a new project, but its initial performance is promising. Lead developer Jim Hugunin was hired by Microsoft to work on dynamic language support for the CLR, and one of his tasks will be to complete the IronPython implementation.


PyPy is a novel Python implementation written in Python which is then translated into lower level languages. It aims to produce a compliant, flexible, and fast implementation of the Python language, integrating Psyco and Stackless features among others. In December 2004 the project won a funding grant from the European Union so that many of the core developers can work full time on the project until the end of 2006.

Python for .NET

Python for .NET was an experimental implementation of Python for the .NET framework. While compiling Python to .NET bytecodes has been implemented and the resulting code works, the resulting code was impractically slow. See the Python.NET home page to get an overview of the current state of progress. Currently this project seems to be inactive.


Vyper is another experimental Python implementation, this one written in Objective Caml. Development on this project is completely dead, but the source code is still available from the Vyper home page and project page on SourceForge.