Python distributionsPython 배포판
Interpreters pypackpack fetches for you, pinned and verified.
pypackpack 이 대신 받아오는, 고정되고 검증된 인터프리터.
Commands명령
ppp python install <version> [<target>] # host → <project>/.venv, cross → <project>/<target dir>
ppp python list
ppp python find <version>
ppp python uninstall <version>
ppp python use <version> # recreate .venv with that version, then uv sync
These manage pypackpack's own distributions, not uv python's. A registry at ~/.pypackpack/python/registry.properties maps each version to its install.
이 명령들은 uv python 이 아니라 pypackpack 자체의 배포판을 관리합니다. ~/.pypackpack/python/registry.properties 레지스트리가 버전마다 설치 위치를 기록합니다.
What can be installed설치할 수 있는 것
The versions toolchain can ask for. 3.14 and 3.13 are shorthands for 3.14.7 and 3.13.0. Every pair is pinned to one URL and one SHA-256.
toolchain 이 요청할 수 있는 버전입니다. 3.14, 3.13 은 3.14.7, 3.13.0 의 줄임입니다. 모든 조합이 URL 하나와 SHA-256 하나에 고정되어 있습니다.
| Version버전 | Targets타깃 | Source출처 |
|---|---|---|
| 3.14.7 | macOS, Linux and Windows on x86_64 and arm64x86_64, arm64 의 macOS, Linux, Windows | python-build-standalone 20260807, install_onlypython-build-standalone 20260807, install_only |
| 3.14.7 | Android arm64 and x86_64Android arm64, x86_64 | python.org Android archivespython.org Android 아카이브 |
| 3.14.7 | iOS device and simulatorsiOS 기기와 시뮬레이터 | BeeWare Python-Apple-support 3.14-b11 (one XCframework)BeeWare Python-Apple-support 3.14-b11 (XCframework 하나) |
| 3.13.0 | macOS, Linux x86_64, Windows x86_64macOS, Linux x86_64, Windows x86_64 | python-build-standalone 20241008, fullpython-build-standalone 20241008, full |
Any other pair is refused with the supported list. A known pair with no pinned digest (3.13.0 for Android and iOS) is refused before anything is downloaded.
그 밖의 조합은 지원 목록과 함께 거부됩니다. 알려졌지만 고정된 다이제스트가 없는 조합 (Android, iOS 용 3.13.0) 은 아무것도 받기 전에 거부됩니다.
Verified before it is unpacked풀기 전에 검증
The archive is downloaded into a staging directory beside the install directory and its SHA-256 is compared with the pin first. A mismatch, or an archive without the expected interpreter tree, leaves nothing behind and an existing install untouched. Relative symlinks inside the tree and executable bits are kept, so bin/python runs.
아카이브는 설치 디렉터리 옆의 스테이징 디렉터리로 받아지고, 먼저 SHA-256 을 고정값과 비교합니다. 다르거나 예상한 인터프리터 트리가 없으면 아무것도 남기지 않고 기존 설치도 건드리지 않습니다. 트리 안의 상대 심볼릭 링크와 실행 비트는 유지되므로 bin/python 이 실행됩니다.
Into a directory you choose원하는 디렉터리로
The library form takes an explicit installDir; toolchain uses it from a Gradle daemon. The tree replaces that directory, and the project, its .venv and the registry are not touched.
라이브러리 형태는 installDir 를 명시적으로 받습니다. toolchain 이 Gradle 데몬에서 이것을 씁니다. 트리가 그 디렉터리를 대체하며, 프로젝트, .venv, 레지스트리는 건드리지 않습니다.
BackendInterface.create(BackendType.UV)
.installPython("3.14", "aarch64-linux-android", installDir = File("build/pythonRuntime/aarch64-linux-android/3.14.7"))