# Using Pyodide from Javascript This document describes using Pyodide directly from Javascript. For information about using Pyodide from Iodide, see [Using Pyodide from Iodide](using_pyodide_from_iodide.md). ## Startup Include `pyodide.js` in your project. The recommended way to include Pyodide in your project is to download a release from [here](https://github.com/iodide-project/pyodide/releases) and include the contents in your distribution, and import the `pyodide.js` file there from a ` Pyodide test page
Open your browser console to see pyodide output ``` Because browsers require WebAssembly files to have mimetype of `application/wasm` we're unable to serve our files using Python's built-in `SimpleHTTPServer` module. Let's wrap Python's Simple HTTP Server and provide the appropiate mimetype for WebAssembly files into a `pyodide_server.py` file (in the `pyodide_local` directory): ```python import sys import socketserver from http.server import SimpleHTTPRequestHandler class Handler(SimpleHTTPRequestHandler): def end_headers(self): # Enable Cross-Origin Resource Sharing (CORS) self.send_header('Access-Control-Allow-Origin', '*') super().end_headers() if sys.version_info < (3, 7, 5): # Fix for WASM MIME type for older Python versions Handler.extensions_map['.wasm'] = 'application/wasm' if __name__ == '__main__': port = 8000 with socketserver.TCPServer(("", port), Handler) as httpd: print("Serving at: http://127.0.0.1:{}".format(port)) httpd.serve_forever() ``` Let's test it out. In your favourite shell, let's start our WebAssembly aware web server: ```bash python pyodide_server.py ``` Point your WebAssembly aware browser to [http://localhost:8000/index.html](http://localhost:8000/index.html) and open your browser console to see the output from python via pyodide!