Python build & distribution · CLI · JVM library

Python 빌드와 배포 · CLI · JVM 라이브러리

Build a Python project once. Ship it to every platform.Python 프로젝트를 한 번 빌드하고, 모든 플랫폼으로.

pypackpack resolves dependencies per target, compiles extension modules and bundles the result for desktop, Android and iOS, so the developer never configures a Python, a JVM or a cross-compiler by hand.

pypackpack 은 타깃마다 의존성을 해석하고, 확장 모듈을 컴파일하고, 결과를 데스크톱, Android, iOS 용으로 번들링합니다. 개발자가 Python, JVM, 크로스 컴파일러를 손으로 설정할 일이 없도록.

pypackpack = crossenv + compiler + bundler + codepushpypackpack = crossenv + 컴파일러 + 번들러 + 코드푸시

01

crossenvcrossenv partial부분

Dependencies resolved and installed for a platform other than the host: per-target markers in pyproject.toml, one install directory per target triple.

호스트가 아닌 플랫폼을 위해 의존성을 해석하고 설치합니다. pyproject.toml 의 타깃별 마커, 타깃 트리플마다 하나의 설치 디렉터리.

02

compiler컴파일러 partial부분

C and C++ extension modules through Meson today; Python itself to bytecode, and to native code at the native level, later.

지금은 Meson 을 통한 C, C++ 확장 모듈. Python 자체를 바이트코드로, native 레벨에서 네이티브 코드로 바꾸는 것은 이후입니다.

03

bundler번들러 implemented구현

One deployment unit per target: the resource payload python-multiplatform runs, or a single, fat or patch wheel.

타깃마다 하나의 배포 단위. python-multiplatform 이 실행하는 resource 페이로드, 또는 single, fat, patch 휠.

04

codepush코드푸시 planned계획

A fast track for shipping a changed bundle, or a patch against an earlier one, to an installed app.

바뀐 번들, 또는 이전 번들에 대한 패치를 이미 설치된 앱으로 보내는 빠른 경로.

One codebase, two front doors하나의 코드, 두 개의 입구

Front door입구For누구를 위해How어떻게
The pypackpack command (alias ppp)pypackpack 명령 (별칭 ppp)Python developersPython 개발자Getting started시작하기
The packpack JVM librarypackpack JVM 라이브러리toolchain, the Gradle plugin, and any JVM buildGradle 플러그인 toolchain, 그리고 모든 JVM 빌드Using the library라이브러리로 쓰기

Where it stops어디까지인가

pypackpack owns the work. The Gradle vocabulary and the runtime belong to its neighbours:

pypackpack 은 작업을 맡습니다. Gradle 어휘와 런타임은 이웃 저장소의 몫입니다.

Repository저장소Owns맡는 것
pypackpackAcquiring Python, resolving dependencies, cross-compiling, bundling.Python 확보, 의존성 해석, 크로스 컴파일, 번들링.
toolchainThe python { } Gradle block that turns into pypackpack calls.pypackpack 호출로 바뀌는 Gradle python { } 블록.
python-multiplatformThe runtime: CPython embedded in Kotlin Multiplatform. It loads the resource bundle.런타임. Kotlin Multiplatform 에 내장된 CPython 이며 resource 번들을 읽습니다.

It is not a Gradle plugin, not the Python runtime, not a package index and not a replacement for uv: resolution and installation are delegated to uv, and pypackpack adds targets, markers and per-target install directories on top.

pypackpack 은 Gradle 플러그인도, Python 런타임도, 패키지 인덱스도, uv 의 대체품도 아닙니다. 해석과 설치는 uv 에 맡기고, 그 위에 타깃, 마커, 타깃별 설치 디렉터리를 더합니다.