mirror of https://github.com/pyodide/pyodide.git
1.5 KiB
1.5 KiB
Frequently Asked Questions (FAQ)
How can I load external python files in Pyodide?
The two possible solutions are,
- include these files in a python package, build a pure python wheel with
python setup.py bdist_wheel
and {ref}load it with micropip <micropip-installing-from-arbitrary-urls>
. - fetch the python code as a string and evaluate it in Python,
pyodide.eval_code(pyodide.open_url('https://some_url/...'))
In both cases, files need to be served with a web server and cannot be loaded from local file system.
Why can't I load files from the local file system?
For security reasons JavaScript in the browser is not allowed to load local data files. You need to serve them with a web-browser.
How to detect that code is run with Pyodide?
At run time, you can detect that a code is running with Pyodide using,
import sys
if "pyodide" in sys.modules:
# running in Pyodide
More generally you can detect Python built with Emscripten (which includes Pyodide) with,
import platform
if platform.system() == 'Emscripten':
# running in Pyodide or other Emscripten based build
This however will not work at build time (i.e. in a setup.py
) due to the way
the pyodide build system works. It first compiles packages with the host compiler
(e.g. gcc) and then re-runs the compilation commands with emsdk. So the setup.py
is
never run inside the Pyodide environement.
To detect pyodide, at build time use,
import os
if "PYODIDE_PACKAGE_ABI" in os.environ:
# building for Pyodide