pyodide/docs/usage/downloading-and-deploying.md

59 lines
2.4 KiB
Markdown
Raw Normal View History

(downloading_deploying)=
# Downloading and deploying Pyodide
## Downloading Pyodide
### CDN
Pyodide packages, including the `pyodide.js` file, are available from the JsDelivr CDN,
| channel | indexURL | Comments | REPL |
| ------------------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------- | -------------------------------------------------- |
2022-01-10 23:17:53 +00:00
| Latest release | `https://cdn.jsdelivr.net/pyodide/v0.19.0/full/` | Recommended, cached by the browser | [link](https://pyodide.org/en/stable/console.html) |
| Dev (`main` branch) | `https://cdn.jsdelivr.net/pyodide/dev/full/` | Re-deployed for each commit on main, no browser caching, should only be used for testing | [link](https://pyodide.org/en/latest/console.html) |
To access a particular file, append the file name to `indexURL`. For instance,
`"${indexURL}pyodide.js"` in the case of `pyodide.js`.
```{warning}
The previous CDN `pyodide-cdn2.iodide.io` is deprecated and should not be used.
```
2021-11-14 20:47:49 +00:00
### GitHub releases
2021-11-14 20:47:49 +00:00
You can also download Pyodide packages from [GitHub
releases](https://github.com/pyodide/pyodide/releases)
(`pyodide-build-*.tar.bz2` file) serve them yourself, as explained in the
following section.
(serving_pyodide_packages)=
## Serving Pyodide packages
If you built your Pyodide distribution or downloaded the release tarball
you need to serve Pyodide files with appropriate headers.
### Serving locally
With Python 3.7.5+ you can serve Pyodide files locally by starting
```
python -m http.server
```
from the Pyodide distribution folder.
Point your WebAssembly aware browser to
[http://localhost:8000/console.html](http://localhost:8000/console.html) and open
your browser console to see the output from Python via Pyodide!
### Remote deployments
Any solution that is able to host static files and correctly sets WASM
2021-11-14 20:47:49 +00:00
MIME type, and CORS headers would work. For instance, you can use GitHub Pages
or similar services.
For additional suggestions for optimizing size and load times, see the [Emscripten
documentation about deployments](https://emscripten.org/docs/compiling/Deploying-Pages.html).