Skip to content

Installation

aaalllexxx edited this page Jul 1, 2026 · 4 revisions

Installation

ENPAF has two installation layers:

  1. The framework (the enpaf Python package + paf CLI) — needed to create, run, and build projects.
  2. The build toolchain (JDK + Android SDK) — needed only when you actually build an APK. You can develop and preview in the browser without it.

1. Install the framework

From a release wheel (recommended)

Download enpaf-<version>-py3-none-any.whl from the Releases page, then:

pip install enpaf-1.1.3-py3-none-any.whl

From source

git clone https://github.com/aaalllexxx/enpaf.git
cd enpaf
pip install .
# or, for development (editable):
pip install -e ".[test]"

This installs the runtime dependencies (Flask, Flask-SocketIO, Jinja2, watchdog, rich, requests, qrcode, colorama) and puts the paf command on your PATH.

Verify

paf info        # inside a project
paf --help      # anywhere
python -c "import enpaf; print(enpaf.__version__)"

Updating

Once installed, keep PAF current with the built-in command:

paf update          # upgrade to the latest release on PyPI
paf update --pre    # include pre-releases

It shows your installed vs. the latest version and skips the upgrade if you're already current. (Equivalent to pip install --upgrade enpaf.)


2. Install the build toolchain (for APKs)

ENPAF builds APKs with Gradle 8.4 + Android Gradle Plugin 8.2 + Chaquopy 15.0.1. You need:

Java JDK 17–21

⚠️ Only JDK 17 through 21 work. Gradle 8.4 cannot run on JDK 22+. If your default java is newer (e.g. JDK 25), ENPAF will try to auto-detect a usable JDK 17 from common install locations and pin JAVA_HOME for the build — but installing JDK 17 explicitly is the reliable path.

  • Download: Eclipse Temurin JDK 17

  • Then point JAVA_HOME at it, e.g. on Windows:

    setx JAVA_HOME "C:\Program Files\Eclipse Adoptium\jdk-17.0.x-hotspot"

    Open a new terminal afterwards.

Android SDK

Install Android Studio (which bundles the SDK) or the command-line tools, then set ANDROID_HOME:

setx ANDROID_HOME "%LOCALAPPDATA%\Android\Sdk"

ENPAF auto-detects the SDK in common locations (%LOCALAPPDATA%\Android\Sdk, ~/Library/Android/sdk, ~/Android/Sdk) if ANDROID_HOME isn't set.

Check everything

paf doctor

paf doctor reports whether a compatible JDK and the Android SDK are found.


Platform notes

Windows + OneDrive

The framework is designed to work on Windows, even when your project lives inside a OneDrive folder. OneDrive's "Files On-Demand" turns files into read-only cloud placeholders and locks them during sync, which breaks Gradle's own delete steps. ENPAF works around this automatically:

  • Project generation clears read-only bits before overwriting.
  • The Gradle build is relocated outside OneDrive to %LOCALAPPDATA%\enpaf\builds\<name>-<hash> (override with ENPAF_BUILD_DIR). The final APK is still copied back to your project's dist/.

See Troubleshooting for details.

First build is slow

The first paf build downloads the Gradle distribution and Android dependencies, and Chaquopy assembles the Python runtime. Subsequent builds reuse the Gradle cache and are much faster.


Next: Quick Start.

Clone this wiki locally