Skip to main content

psa — Python Standalone Manager

Pure-Python CLI to list, download, and extract astral-sh/python-build-standalone prebuilt Python distributions.

psa's job is to bootstrap Python on a system. Projects then create their venvs with the interpreter they need (--python=python3.13); psa deliberately has no project-management features.

Supported platforms:

  • macOS Apple Silicon (aarch64-apple-darwin)
  • Linux x86_64 glibc (x86_64-unknown-linux-gnu)

It focuses on the install_only / install_only_stripped archives, and has no mandatory dependencies beyond the standard library.

Quick start

pip install psa-cli                       # package is psa-cli; command is psa
psa install 3.13                          # newest 3.13.x: download, extract, link
echo 'eval "$(psa shellenv)"' >> ~/.zshrc # put ~/.python/bin on PATH
python3.13 -m venv .venv                  # projects take it from there

psa install maintains symlinks in ~/.python/bin: python3.X per installed minor (newest patch wins), and python3 pointing at the highest minor — or a pinned one via psa link --set-default 3.12.

Or without installing:

python -m psa install 3.13

Optional extra for in-Python extraction of .tar.zstd without a zstd-capable system tar:

pip install "psa-cli[extract]"

Layout

Base directory defaults to ~/.python (override with --base-dir):

~/.python/
  downloads/            # raw downloaded archives
  versions/<version>/   # extracted trees
  bin/                  # managed symlinks (python3, python3.X)
  config.toml           # optional settings (default = "3.X")

Documentation

Full command reference lives in docs/ (Sphinx):

pip install -e ".[docs]"
sphinx-build -M html docs docs/_build

Project structure

src/psa/
  cli.py        # argparse commands
  releases.py   # remote: release metadata, asset parsing, downloads
  store.py      # local: extraction, installed versions, symlinks, config
tests/          # pytest suite (offline pieces: parsing, selection, linking)
docs/           # Sphinx documentation
notes/          # design notes and history

Tests

python -m pytest

License

MIT

Download files

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

Source Distribution

psa_cli-26.1.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

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

psa_cli-26.1-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file psa_cli-26.1.tar.gz.

File metadata

  • Download URL: psa_cli-26.1.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.5

File hashes

Hashes for psa_cli-26.1.tar.gz
Algorithm Hash digest
SHA256 e9d2a07199abea1f93677cf98c83bc2b22e700e413cf1ea3280a9b89f02b8cf9
MD5 939260733b75d9b3c131b2f247c826a6
BLAKE2b-256 7439d6a2830322131d12252c18df2ccac0c0f551ce07a5b1af7aee81af937331

See more details on using hashes here.

File details

Details for the file psa_cli-26.1-py3-none-any.whl.

File metadata

  • Download URL: psa_cli-26.1-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.5

File hashes

Hashes for psa_cli-26.1-py3-none-any.whl
Algorithm Hash digest
SHA256 03362a91d84f61c716f9cbbc208b08bd4de8796f6197e914b5d0abf4488911c4
MD5 460db2fa38b60328ead004f2c30beb47
BLAKE2b-256 bafddeb1b2b2d180609f4baf3443eba6cde9ded400a4928a1ae27c92cef585c9

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