Bun ships the UV Python package and project manager (UV 0.12.24) as the uv plugin, the bun-uv executable. Run it with bun uv:
bun uv --version
bun uv venv
bun uv sync
bun uv run python main.py
bun uv pip install --python .venv/bin/python requests
On Windows, use .venv/Scripts/python.exe for a virtual environment's Python executable.
The same executable can be installed under the names buv and pyjs; buv uv <command> and pyjs uv <command> behave like bun uv <command>. When the executable is invoked as uv or uvx (for example through a renamed copy or a link), it behaves like the standalone uv and uvx commands.
bun uv dispatches to bun-uv before the JavaScript engine starts; the first use downloads the plugin matching the running Bun. It preserves UV's arguments, Python discovery, project configuration, cache and exit statuses. UV's self-update command is disabled; update UV by upgrading Bun.
PyJS files
PyJS combines the JavaScript and Python surface. Files ending in .pyjs, .pyts and .pytsx use Bun's JavaScript, TypeScript and TSX loaders respectively. Python code runs only through an explicit bun:python call.
Related
- Python: run Python files, embed CPython with
bun:pythonand compile Python withbun compile.