See the issue in pyiodide https://github.com/iodide-project/pyodide/issues/253. It's a very interesting project and it'd be worth giving it a try.