Skip to content
Installing packages

Installing packages

bunpy install

bunpy install [flags]

Reads pyproject.toml, resolves all dependencies, downloads missing wheels, extracts them into .bunpy/site-packages/, and writes or verifies bunpy.lock.

See bunpy install CLI reference for all flags.

Wheel cache

Downloaded wheels are cached at ~/.cache/bunpy/wheels/ (or $XDG_CACHE_HOME/bunpy/wheels/). A subsequent bunpy install in a different project with the same dependency re-uses the cached wheel - no network request.

Override the cache directory:

bunpy install --cache-dir /tmp/bunpy-cache

Site-packages layout

After install:

.bunpy/
└── site-packages/
    ├── requests/
    │   └── __init__.py
    ├── requests-2.31.0.dist-info/
    │   ├── METADATA
    │   ├── WHEEL
    │   └── INSTALLER       ← always "bunpy"
    └── ...

Reproducibility

When bunpy.lock exists, bunpy install uses pinned URLs and verifies SHA-256 hashes. The environment is bit-for-bit reproducible across machines.

For CI, use --frozen to refuse any lock file modification:

bunpy install --frozen

Patch application

If [tool.bunpy.patches] entries exist in pyproject.toml, bunpy applies the patch files on top of the extracted wheels:

[tool.bunpy.patches]
packages = ["requests@2.31.0"]

See bunpy patch for how to create patches.