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 + 컴파일러 + 번들러 + 코드푸시
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 의 타깃별 마커, 타깃 트리플마다 하나의 설치 디렉터리.
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 레벨에서 네이티브 코드로 바꾸는 것은 이후입니다.
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 휠.
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맡는 것 |
|---|---|
| pypackpack | Acquiring Python, resolving dependencies, cross-compiling, bundling.Python 확보, 의존성 해석, 크로스 컴파일, 번들링. |
| toolchain | The python { } Gradle block that turns into pypackpack calls.pypackpack 호출로 바뀌는 Gradle python { } 블록. |
| python-multiplatform | The 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 에 맡기고, 그 위에 타깃, 마커, 타깃별 설치 디렉터리를 더합니다.