PyPackPack (PPP) - A multiplatform solution to distribute python project
Project description
pypackpack
Description
A multiplatform solution to distribute python project.
pypackpack = crossenv + compiler(nuitka, pyinstaller) + bundler(js webpack) + codepush(js expo)
Supporting multiplatforms:
- Android (arm64, x86_64)
- iOS (arm64)
- masOS (universal)
- Linux (x86_64)
- Windows (x86_64)
- WASM -
[!NOTE]
** Since Xcode only runs on macOS, you need macOS to build this repo for iOS.
Build Manually 🛠️
Prerequisites
- GraalVM 22+ with Native Image support
- Gradle 8.5+ (included via wrapper)
(1) Clone this repo
- RC version
git clone https://github.com/thisisthepy/pypackpack PyPackPack
- dev version
git clone https://github.com/thisisthepy/pypackpack@develop PyPackPack
(2) Setup GraalVM
Download and install GraalVM from https://www.graalvm.org/
Set environment variables:
export GRAALVM_HOME=/path/to/graalvm
export PATH=$GRAALVM_HOME/bin:$PATH
Install Native Image component:
gu install native-image
(3) Build Options
Standard Gradle Build:
./gradlew build
Build Native Executable:
./gradlew buildNativeExecutable
Package Native Distribution:
./gradlew packageNative
Quick Build Script (Unix):
chmod +x scripts/build-native.sh
./scripts/build-native.sh
Quick Build Script (Windows):
scripts\build-native.bat
(4) Available Gradle Tasks
build- Standard build with testsnativeCompile- Compile to native executablebuildNativeExecutable- Build and copy native executablepackageNative- Create distribution packagebuildAllPlatforms- Cross-platform build (requires Docker)
Use Pre-Built Package 🧰
(1) Maven Repo (Release only)
In your project build.gradle.kts
implementation("io.github.thisisthepy:python-multiplatform:0.0.1")
(2) Jitpack (for Pre-release)
In your project settings.gradle.kts
pluginManagement {
repositories {
google {
mavenContent {
includeGroupAndSubgroups("androidx")
includeGroupAndSubgroups("com.android")
includeGroupAndSubgroups("com.google")
}
}
mavenCentral()
gradlePluginPortal()
maven {
setUrl("https://jitpack.io") // Add this line!
}
}
}
In your project build.gradle.kts
implementation("com.github.thisisthepy:python-multiplatform-mobile:0.0.1")
[!TIP] Some tips
Usage 📑
In your main method,
[!IMPORTANT] Somethig important
Stargazers over time 🌟
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pypackpack-0.1.0.tar.gz.
File metadata
- Download URL: pypackpack-0.1.0.tar.gz
- Upload date:
- Size: 8.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d2c4693ff39ff72b01858f688e283d0144c31e9e17b0be8925d0cb5cf288ca7
|
|
| MD5 |
3c782ebc743ed6b67031f750d277ed0a
|
|
| BLAKE2b-256 |
8c8112388f99d4f7d68633f6c7a2d481ac5907056059b91a87601f71d879e422
|
File details
Details for the file pypackpack-0.1.0-py3-none-win_amd64.whl.
File metadata
- Download URL: pypackpack-0.1.0-py3-none-win_amd64.whl
- Upload date:
- Size: 16.3 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdb27d55f73e4725efc9b9f1055bfc81ad40331cb246cba46761bd2406924af3
|
|
| MD5 |
ec7d69ff921eb3f4a4bcae3c0741304f
|
|
| BLAKE2b-256 |
87c953c8e552a5e3ea1f5ed03e78bc6f8ded10dfecef65957a2e65ee4fb65d4a
|