PBS Installer
raw JSON → 2026.3.25 verified Tue May 12 auth: no python install: verified quickstart: verified
pbs-installer is a Python library that serves as an installer for @indygreg's python-build-standalone. It automates the process of downloading and installing specific Python versions in a standalone fashion. The library is actively maintained with frequent releases, often multiple times a month, and is currently at version 2026.3.25.
pip install pbs-installer Common errors
error ModuleNotFoundError: No module named 'pbs_installer' ↓
cause The 'pbs-installer' package is not installed in the current Python environment or the environment is not properly activated.
fix
pip install pbs-installer
error pbs-installer: command not found ↓
cause The 'pbs-installer' command-line tool is not installed or its installation directory is not included in the system's PATH environment variable.
fix
Ensure the package is installed with
pip install pbs-installer, then restart your terminal or verify that the Python environment's script directory is in your system's PATH. error OSError: [Errno 13] Permission denied: '/usr/local/python/3.10.8' ↓
cause The user is attempting to install a standalone Python build into a system-protected directory where they lack write permissions.
fix
Specify an installation directory where the current user has write permissions using the
--path argument (e.g., pbs-installer install 3.10.8 --path ~/.pythons/3.10.8), or run the command with elevated privileges (sudo pbs-installer ...) if installing to a system-wide location is absolutely necessary (though generally discouraged for standalone builds). error checksum mismatch for https://github.com/indygreg/python-build-standalone/releases/download/... ↓
cause The downloaded Python build file is corrupted, incomplete, or its checksum no longer matches the expected value, possibly due to a network issue, an interrupted download, or an upstream change to the build artifact.
fix
Clear the local cache using
pbs-installer clear-cache and then retry the installation. If the issue persists, verify your network connection or check the python-build-standalone GitHub releases for any reported issues with the specific build version. error No such Python build exists for version '3.10.99' for platform 'linux-x86_64'. ↓
cause The specified Python version (e.g., '3.10.99') does not have a pre-built standalone package available for the current operating system and architecture on the `python-build-standalone` releases page.
fix
Check the official
python-build-standalone GitHub releases or the output of pbs-installer list for a list of available and supported Python versions for your platform, and use one of those. Warnings
gotcha Full functionality requires optional dependencies `httpx` and `zstandard`. Without them, downloading might fail (e.g., `ModuleNotFoundError` for `httpx`) or Zstandard-compressed builds cannot be extracted. ↓
fix Install `pbs-installer` with the `[all]` extra: `pip install pbs-installer[all]`.
gotcha There are multiple unrelated Python libraries or projects with 'PBS' in their name (e.g., `pbs-python` for Torque/OpenPBS, `pbs` for subprocess management). Ensure you are importing and using `pbs_installer` from `frostming` for Python Build Standalone installations. ↓
fix Verify your imports: `from pbs_installer import install` and confirm `pypi.org/project/pbs-installer` is the intended library.
gotcha The `request` parameter for the `install` function expects specific Python version strings (e.g., '3.10', '3.10.4', 'pypy-3.9'). Passing malformed or ambiguous strings might result in a `ValueError` if a matching build cannot be found. ↓
fix Consult the `pbs-installer` documentation or source code for supported version string formats. Use precise version numbers.
gotcha When installing Python for a different target environment (cross-compiling) or if auto-detection fails, explicitly specifying the `arch` and `platform` parameters in the `install` function is crucial. Omitting them might lead to downloading an incompatible Python build for the current system. ↓
fix Pass `arch='x86_64'`, `platform='linux'` (or appropriate values) to the `install` function to ensure the correct standalone build is selected.
Install
pip install pbs-installer[all] pipx install pbs-installer Install compatibility verified last tested: 2026-05-12
python os / libc variant status wheel install import disk
3.10 alpine (musl) pbs-installer - - 0.07s 18.5M
3.10 alpine (musl) all - - 0.09s 24.4M
3.10 slim (glibc) pbs-installer - - 0.06s 19M
3.10 slim (glibc) all - - 0.06s 25M
3.11 alpine (musl) pbs-installer - - 0.14s 20.4M
3.11 alpine (musl) all - - 0.10s 26.7M
3.11 slim (glibc) pbs-installer - - 0.12s 21M
3.11 slim (glibc) all - - 0.09s 27M
3.12 alpine (musl) pbs-installer - - 0.11s 12.3M
3.12 alpine (musl) all - - 0.10s 18.4M
3.12 slim (glibc) pbs-installer - - 0.09s 13M
3.12 slim (glibc) all - - 0.13s 19M
3.13 alpine (musl) pbs-installer - - 0.07s 11.9M
3.13 alpine (musl) all - - 0.07s 17.8M
3.13 slim (glibc) pbs-installer - - 0.10s 12M
3.13 slim (glibc) all - - 0.07s 18M
3.9 alpine (musl) pbs-installer - - 0.07s 18.0M
3.9 alpine (musl) all - - 0.05s 23.7M
3.9 slim (glibc) pbs-installer - - 0.09s 19M
3.9 slim (glibc) all - - 0.07s 24M
Imports
- install
from pbs_installer import install - download
from pbs_installer import download
Quickstart verified last tested: 2026-04-23
import os
from pbs_installer import install
# Define the target directory for Python installation
install_path = os.path.join(os.getcwd(), "my_python_env")
python_version = "3.10" # Example: install CPython 3.10
print(f"Attempting to install CPython {python_version} to {install_path}")
try:
# Ensure optional dependencies are installed for full functionality, e.g., via `pip install pbs-installer[all]`
install(request=python_version, destination=install_path)
print(f"CPython {python_version} installed successfully to {install_path}")
except Exception as e:
print(f"Error installing Python: {e}")
# Example of how to verify installation (simplified)
# This would typically involve checking for the python executable in install_path
python_executable = os.path.join(install_path, 'bin', 'python') if os.name == 'posix' else os.path.join(install_path, 'python.exe')
if os.path.exists(python_executable):
print(f"Python executable found at: {python_executable}")
else:
print(f"Python executable NOT found at: {python_executable}")