Skip to content

Latest commit

 

History

History
70 lines (53 loc) · 2.06 KB

File metadata and controls

70 lines (53 loc) · 2.06 KB

run_example

Before running the app, run the following command to package the Python app for the target platform.

For Android:

export SERIOUS_PYTHON_SITE_PACKAGES=$(pwd)/build/site-packages
export SERIOUS_PYTHON_APP=$(pwd)/build/python-app
dart run serious_python:main package app/src -p Android -r -r -r app/src/requirements.txt

For iOS:

export SERIOUS_PYTHON_SITE_PACKAGES=$(pwd)/build/site-packages
export SERIOUS_PYTHON_APP=$(pwd)/build/python-app
dart run serious_python:main package app/src -p iOS -r -r -r app/src/requirements.txt

For macOS:

export SERIOUS_PYTHON_SITE_PACKAGES=$(pwd)/build/site-packages
export SERIOUS_PYTHON_APP=$(pwd)/build/python-app
dart run serious_python:main package app/src -p Darwin -r -r -r app/src/requirements.txt

For Windows:

export SERIOUS_PYTHON_SITE_PACKAGES=$(pwd)/build/site-packages
export SERIOUS_PYTHON_APP=$(pwd)/build/python-app
dart run serious_python:main package app/src -p Windows -r -r -r app/src/requirements.txt

For Linux:

export SERIOUS_PYTHON_SITE_PACKAGES=$(pwd)/build/site-packages
export SERIOUS_PYTHON_APP=$(pwd)/build/python-app
dart run serious_python:main package app/src -p Linux -r -r -r app/src/requirements.txt

For Pyodide:

dart run serious_python:main package app/src -p Emscripten -r -r -r app/src/requirements.txt

For Android, no special native-library packaging config is required. serious_python relocates Python extension modules into jniLibs and loads them directly from the APK (memory-mapped, no extraction), and ships pure Python in stored asset zips read via zipimport. Just use a minSdk of 23+ so native libs stay uncompressed/page-aligned in the APK:

In android/app/build.gradle.kts:

android {
    defaultConfig {
        minSdk = 23
    }
}

To ship a path-hungry package extracted to disk instead of inside the zip — for packages that read bundled data via __file__ / pkg_resources rather than importlib.resources — set SERIOUS_PYTHON_ANDROID_EXTRACT_PACKAGES to a comma-separated list of relative package paths before building.