mirror of https://github.com/pyodide/pyodide.git
DOC Add FAQ entry on detecting pyodide at run and build time (#790)
This commit is contained in:
parent
7d3a6da40c
commit
7d4fbe9d1a
|
@ -15,6 +15,8 @@ export HOSTPYTHON=$(HOSTPYTHONROOT)/bin/python3
|
|||
export TARGETPYTHONROOT=$(PYODIDE_ROOT)/cpython/installs/python-$(PYVERSION)
|
||||
export PYTHONINCLUDE=$(PYODIDE_ROOT)/cpython/installs/python-$(PYVERSION)/include/python$(PYMINOR)
|
||||
|
||||
# This env variable is used to detect pyodide at build time,
|
||||
# do not rename it.
|
||||
export PYODIDE_PACKAGE_ABI=1
|
||||
|
||||
export SIDE_LDFLAGS=\
|
||||
|
|
32
docs/faq.md
32
docs/faq.md
|
@ -18,3 +18,35 @@ In both cases, files need to be served with a web server and cannot be loaded fr
|
|||
|
||||
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,
|
||||
```py
|
||||
import sys
|
||||
|
||||
if "pyodide" in sys.modules:
|
||||
# running in Pyodide
|
||||
```
|
||||
|
||||
More generally you can detect Python built with Emscripten (which includes
|
||||
Pyodide) with,
|
||||
```py
|
||||
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,
|
||||
```python
|
||||
import os
|
||||
|
||||
if "PYODIDE_PACKAGE_ABI" in os.environ:
|
||||
# building for Pyodide
|
||||
```
|
||||
|
|
Loading…
Reference in New Issue