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


Project name


Gist


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


License


Interop with major JS libraries (jQuery, etc.)


Interactive Console Available?


Compilers: SourceMap? (meaningful error line numbers)


Notes


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 local_storage.py" "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 Can use tuples as dictionary keys now. 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 https://groups.google.com/forum/?fromgroups#!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 Project discontinued Yes Yes Subset of Python 3 No Yes, native Yes, native Yes, native https://groups.google.com/forum/#!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 Pip-installable Python 3.5 / 3.6 to JavasScript 5 / 6 compiler with optional static typechecking Yes Yes Compatible with Python 3.5 / 3.6 incl. locally controlled operator overloading Currently: time, re, itertools, math, cmath, turtle, logging, random, warnings, part of numpy (real and complex matrix algebra, 1D and 2D FFT) Directly, no conversions needed Directly, no conversions needed Directly, no conversions needed No, relies on stackoverflow tag [Transcrypt], GitHub QQuick/Transcrypt issues and twitter #TranscryptOrg Apache 2 Works directly with any JavaScript library, no conversions needed, demos for major libs included No, since it is precompiled for speed rather than interpreted Multilevel sourcemaps allow debugging of minified or non-minified JavaScript code directly from Python source code Small downloads: size of source + 20kB runtime, fast JavaScript (a.o. call caching, a+=1 - a++, for...of...) integrated linter, minifier and static typechecker are part of download, python-style docs, professional support available
    Flexx A web development framework that appears to include a transpiler





  • Row subtables