Skip to main content

PyPackPack (PPP) - A multiplatform solution to distribute python project

Project description

pypackpack

Build Version Downloads

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 tests
  • nativeCompile - Compile to native executable
  • buildNativeExecutable - Build and copy native executable
  • packageNative - Create distribution package
  • buildAllPlatforms - 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 🌟

Stargazers over time

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypackpack-0.1.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypackpack-0.1.0-py3-none-win_amd64.whl (16.3 MB view details)

Uploaded Python 3Windows x86-64

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

Hashes for pypackpack-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2d2c4693ff39ff72b01858f688e283d0144c31e9e17b0be8925d0cb5cf288ca7
MD5 3c782ebc743ed6b67031f750d277ed0a
BLAKE2b-256 8c8112388f99d4f7d68633f6c7a2d481ac5907056059b91a87601f71d879e422

See more details on using hashes here.

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

Hashes for pypackpack-0.1.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 fdb27d55f73e4725efc9b9f1055bfc81ad40331cb246cba46761bd2406924af3
MD5 ec7d69ff921eb3f4a4bcae3c0741304f
BLAKE2b-256 87c953c8e552a5e3ea1f5ed03e78bc6f8ded10dfecef65957a2e65ee4fb65d4a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page