Pyodide is a Python distribution for the browser and Node.js based on WebAssembly
Go to file
Michael Droettboom 065c572a8d
Merge pull request #178 from rth/fix-custom-url-data-v2
Fix load .data files from the same base URL as .js
2018-09-20 08:34:21 -04:00
.circleci Fix #172. Use Firefox latest rather than nightly 2018-09-19 11:41:18 -04:00
benchmark Minor fixups from pull request 2018-08-06 10:01:28 -04:00
cpython Simplify traceback on package load timeout 2018-09-20 12:51:11 +02:00
docs Fix #71: Upgrade to Python 3.7 2018-09-06 10:56:33 -04:00
emsdk Fix emsdk build 2018-07-24 17:47:49 -04:00
packages Merge pull request #149 from mdboom/matplotlib-2.2.3 2018-09-11 09:56:56 +02:00
six Add documentation to new build tools. 2018-06-22 10:22:00 -04:00
src Merge pull request #178 from rth/fix-custom-url-data-v2 2018-09-20 08:34:21 -04:00
test Merge pull request #178 from rth/fix-custom-url-data-v2 2018-09-20 08:34:21 -04:00
tools Reorg pyodide ns to separate emscripten details from public API 2018-09-19 10:50:23 -04:00
.clang-format Add linting 2018-06-14 14:19:08 -04:00
.editorconfig Fix #71: Upgrade to Python 3.7 2018-09-06 10:56:33 -04:00
.gitignore Use ccache 2018-07-24 12:58:31 -04:00
CHANGELOG.md Add some community and contributing guidelines 2018-06-07 15:43:04 -04:00
CODE-OF-CONDUCT.md Update link to recurse center code of conduct 2018-07-18 18:52:18 -04:00
CONTRIBUTING.md Add linting 2018-06-14 14:19:08 -04:00
LICENSE Initial commit 2018-02-23 14:21:29 -05:00
Makefile Add src/python_dev.html 2018-09-20 14:18:50 +02:00
Makefile.envs Fix #71: Upgrade to Python 3.7 2018-09-06 10:56:33 -04:00
README.md Fix #71: Upgrade to Python 3.7 2018-09-06 10:56:33 -04:00
remove_modules.txt Lots of pandas fixes: 2018-04-24 19:29:54 -04:00
setup.cfg Copy test data in a pytest fixture 2018-08-28 14:42:14 +03:00

README.md

Pyodide

Build Status

The Python scientific stack, compiled to WebAssembly.

It provides transparent conversion of objects between Javascript and Python. When inside a browser, this means Python has full access to the Web APIs.

While closely related to the iodide project, Pyodide may be used standalone in any context where you want to run Python inside a web browser.

See the demo

Building

These instructions were tested on Linux. OSX should be mostly the same.

Make sure the prerequisites for emsdk are installed. Pyodide will build a custom, patched version of emsdk, so there is no need to build it yourself prior.

Additional build prerequisites are:

  • A working native compiler toolchain, enough to build CPython.
  • A native Python 3.7 to run the build scripts.
  • PyYAML
  • lessc to compile less to css.
  • uglifyjs to minify Javascript builds.
  • ccache (optional) recommended for much faster rebuilds.

make

Testing

Install the following dependencies into the default Python installation:

pip install pytest selenium pytest-instafail

Install geckodriver and chromedriver somewhere on your PATH.

pytest test/

Benchmarking

Install the same dependencies as for testing.

make benchmark

Linting

Python is linted with flake8. C and Javascript are linted with clang-format.

make lint