This page will show tooltips if you mouseover a red table element. However, they work better in firefox than chrome.

Project name


Actively developed?

Can import?

Compatibility with CPython 2 or 3

Python stdlib?

Can call Javascript code?

Can work with the DOM?

Can access HTML5?

Mailing list


Interop with major JS libraries (jQuery, etc.)

Interactive Console Available?

Compilers: SourceMap? (meaningful error line numbers)

Brython Python 3 translator to JavaScript. Python is recompiled on each pageload. Yes Yes Python 3.x. Some esoteric things not implemented, no str.format, no generators. Some: datetime, hashlib, json, math, random, sys, dis, errno, itertools, keyword, os, string, sys, traceback Yes, via JSObject
  • win and doc refer to the window and document objects. These objects have the same attributes and methods as in Javascript, plus more features such as doc[key] for document.getElementById, or dom_object.get(selector) for dom_object.querySelectorAll()
  • the built-in classes DOMNode and DOMEvent handle DOM nodes and events
  • "Yes via "html" module and others, EG" "Google Group" New BSD (3 clause) Yes Yes A lot of effort has been put so that Brython reports errors and exceptions as closely as possible to standard Python. Brython does not use SourceMap, but it does something similar. "
  • Somewhat unpythonic use of <= for HTML
  • mandelbrot
  • Demos"
  • Fiddle Salad In-browser IDE that can translate Python to JavaScript Yes ? ? ? Yes, via JS('javascript') Yes ? None? Seems to rely on twitter GPLv3 ? No? ?
    RapydScript Wrapper around PyvaScript No? Maybe deemphasized for RapydScript II now Yes, but imported into a single namespace ? ? Seamlessly Yes Google turned up nothing "Google Group" GPLv3, but library code is Apache ? No? Possibly
    RapydScript II Python 2 translated to JavaScript. Translation written in JavaScript using UglifyJS2 Yes Yes, mostly ? Yes, probably Yes Yes ? "Google Group" Apache v2 ? No? Possibly "Blog"
    Skulpt Python 2 translator to JavaScript. Python is recompiled on each pageload. Yes Some things Cannot use tuples as dictionary keys. Raising a custom exception breaks the parser. Sounds limited to specific modules Yes Yes, mostly. It's not comprehensive, but the most common operations are there Can at least get to a canvas (for turtle graphics) "Google Group" MIT/PSFLv2 ? Yes? No need? Has been used in some online interactive Python tutorials
    pyjs Translate Python 2.[56] into Javascript, and widget set for GWT-like desktop and browser Yes, or at least somewhat Yes Has --enable-strict to make the runtime more strictly conformant Much Yes, via JS Yes, via pyjamas.DOM No? Google didn't turn up much "Google Group" Apache jQuery, perhaps more No? No? "
  • Drama 1
  • Drama 2"
  • PythonScript Translates a subset of Python 2.x (called PythonJS) to JavaScript Yes No Subset - a lot of similarities "No, but has a "weblib"" "Yes. "Creating JavaScript bindings is easy using JS function"" Yes, via jQuery Yes, via JavaScript "Google Group" LGPLv2.1 jQuery Yes and No: the online editor can be used to interact with the underlying compiler smoothly "Being developed" The name is a little hard to google for. A young project.
    PJs Kinda like Pyjamas: Translate Python to JavaScript Yes ? ? ? ? ? ? None? ? ? ? ? Emphasizes debuggability and readable JavaScript
    Pystachio Incomplete project No? No downloads Early stage project
    PyvaScript Converts a Python-like language into JavaScript Not so much: month old No Tiny Yes, quite well
  • Subject to undetected compile errors that most translators/interpreters would catch
  • Doesn't look that much like Python to me
  • Pyxc-pj Python to JavaScript translator No Yes Some, maybe more Poorly documented, test cases don't work, requires Django 1.2?
    Pyjamas Translate Python 2.[56] into Javascript, and widget set for GWT-like desktop and browser No? Yes Much "
  • Drama 1
  • Drama 2"
  • Empythoned CPython 2.x compiled to JavaScript using LLVM No Yes Quite good Appears at least close to complete ? Via empydom ? PSFL ? "Yes" No need Rather slow, but it's CPython. Only supports specific browsers, doesn't support konqueror.
    py2js #1 Converts a small subset of Python to JavaScript No Alpha-release, not ption-ready
    py2js #2 Converts Python into JavaScript No Aims to do all of Python at some point
    py2js #3 Converts Python into JavaScript No!forum/py2js
    Pyjaco Converts Python into JavaScript No Much Yes, but requires some type conversions
  • Started as a fork of py2js #2
  • Had some copyright issues that needed to be resolved, but that's been taken care of now
  • Pythonium Ahead of Time Python to JavaScript transpiler; Python 3 to Javascript translator written in Python that produces fast, portable javascript code Yes Yes Subset of Python 3 No Yes, native Yes, native Yes, native!forum/pythonium-users AGPL v3 Yes, native No Planned Aims for 100% compatibility with Python 3.x
    PythonJS Translates a subset of Python into JavaScript. Python is recompiled on each pageload? Yes Yes, but different semantic, it imports an object from the module, or a dictionary of objects defined by __all__ variable in the module (it's not __all__ variable...) Apparently aiming for Python 2 and Python 3 compatibility Yes Yes N/A? Public Domain NodeJS, etc. "Faster than Brython?"
    Pypy.js Pypy ported to Javascript Yes Yes 2.x Somewhat ? ? ? ? MIT? ? Yes ? Fast, but large: slow to load, fast once it gets loaded.
    Transcrypt Another Python to JavaScript transpiler Yes Yes Not ready for production, but produces small downloads
    Flexx A web development framework that appears to include a transpiler

  • Row subtables