143ce603d7
The biggest change is that most of `0001-hacks-for-WebAssembly-build.patch` is eliminated, and the remaining is split up into individual single-purpose patches with corresponding documentation.
Most of `0001-hacks-for-WebAssembly-build.patch` is in fact unnecessary. We can continue to produce `.a` files instead of `.bc` files, and all we have to do to make it build is to set `$(ARCH) = emar` and `$(RANLIB) = emranlib`. In fact, we don't have to set them to anything, since the point of emmake is to set these for us (except emmake uses `$(AR)` so we set `$(ARCH) = $(AR)`).
There are places where `ar` and `cc` etc. are used directly instead of the variables; we use `sed` to fix this in the parent `Makefile` instead of patching.
In addition, there are also the following changes:
- Change the build system to build CLAPACK-WA/INSTALL as well. We should always have built it, but we managed to get away with not doing so due to a bug in emscripten that is fixed in 1.38.43. See https://github.com/iodide-project/pyodide/pull/843#issuecomment-744428471
- Generate `F2CLIB/libf2c/arith.h` properly instead of setting it to an empty file.
- Remove a seemingly unnecessary patch (
|
||
---|---|---|
.circleci | ||
.github/workflows | ||
benchmark | ||
bin | ||
cpython | ||
docs | ||
emsdk | ||
packages | ||
pyodide_build | ||
src | ||
tools | ||
.clang-format | ||
.dockerignore | ||
.editorconfig | ||
.gitignore | ||
.pre-commit-config.yaml | ||
.readthedocs.yml | ||
CODE-OF-CONDUCT.md | ||
Dockerfile | ||
Dockerfile-prebuilt | ||
LICENSE | ||
Makefile | ||
Makefile.envs | ||
README.md | ||
conftest.py | ||
run_docker | ||
setup.cfg |
README.md
The Python scientific stack, compiled to WebAssembly.
What is Pyodide?
Pyodide brings the Python 3.8 runtime to the browser via WebAssembly, along with the Python scientific stack including NumPy, Pandas, Matplotlib, parts of SciPy, and NetworkX. The packages
directory lists over 35 packages which are currently available.
Pyodide provides transparent conversion of objects between Javascript and Python. When used inside a browser, Python has full access to the Web APIs.
While closely related to the iodide project, a tool for literate scientific computing and communication for the web, Pyodide goes beyond running in a notebook environment. To maximize the flexibility of the modern web, Pyodide may be used standalone in any context where you want to run Python inside a web browser.
Try Pyodide (no installation needed)
Try the iodide demo notebook or fire up a Python REPL directly in your browser.
For further information, look through the documentation.
Getting Started
Pyodide offers three different ways to get started depending on your needs and technical resources. These include:
- Use hosted distribution of pyodide: see using pyodide from Javascript documentation.
- Download a pre-built version from this repository's releases page and serve its contents with a web server.
- Build Pyodide from source
- Build natively with
make
: primarily for Linux users who want to experiment or contribute back to the project. - Use a Docker image: recommended for Windows and macOS users and for Linux users who prefer a Debian-based Docker image with the dependencies already installed.
- Build natively with
Contributing
Please view the contributing guide for tips on filing issues, making changes, and submitting pull requests.
License
Pyodide uses the Mozilla Public License Version 2.0. See the LICENSE file for more details.