# Building and installing Python bindings

Python bindings are available as wheels on [PyPI](https://pypi.org/project/google-benchmark/) for importing and 
using Google Benchmark directly in Python. 
Currently, pre-built wheels exist for macOS (both ARM64 and Intel x86), Linux x86-64 and 64-bit Windows.
Supported Python versions are Python 3.10 - 3.15, including free-threaded builds on Python 3.14t and 3.15t.

To install Google Benchmark's Python bindings, run:

```bash
python -m pip install --upgrade pip  # for manylinux2014 support
python -m pip install google-benchmark
```

In order to keep your system Python interpreter clean, it is advisable to run these commands in a virtual
environment. See the [official Python documentation](https://docs.python.org/3/library/venv.html) 
on how to create virtual environments.

To build a wheel directly from source, you can follow these steps:
```bash
git clone https://github.com/google/benchmark.git
cd benchmark
# create a virtual environment and activate it
python3 -m venv venv --system-site-packages
source venv/bin/activate  # .\venv\Scripts\Activate.ps1 on Windows

# upgrade Python's system-wide packages
python -m pip install --upgrade pip build
# builds the wheel and stores it in the directory "dist".
python -m build
```

NB: Building wheels from source requires Bazel. For platform-specific instructions on how to install Bazel,
refer to the [Bazel installation docs](https://bazel.build/install).
