Python bindings

!!! info

API reference pages for IREE's runtime and compiler Python APIs are hosted on
[readthedocs](https://iree-python-api.readthedocs.io/en/latest/).

Overview

IREE offers Python bindings split into several packages, covering different components:

PIP package nameDescription
iree-compilerIREE's generic compiler tools and helpers
iree-runtimeIREE's runtime, including CPU and GPU backends
iree-tools-tfTools for importing from TensorFlow
iree-tools-tfliteTools for importing from TensorFlow Lite
iree-tools-xlaTools for importing from XLA
iree-jaxTools for importing from JAX

Collectively, these packages allow for importing from frontends, compiling towards various targets, and executing compiled code on IREE's backends.

!!! Caution The TensorFlow, TensorFlow Lite, and XLA packages are currently only available on Linux and macOS. They are not available on Windows yet (see this issue).

Prerequisites

To use IREE's Python bindings, you will first need to install Python 3 and pip, as needed.

???+ tip We recommend using virtual environments to manage python packages, such as through venv (about, tutorial):

=== "Linux"

    ``` shell
    python -m venv .venv
    source .venv/bin/activate
    ```

=== "macOS"

    ``` shell
    python -m venv .venv
    source .venv/bin/activate
    ```

=== "Windows"

    ``` powershell
    python -m venv .venv
    .venv\Scripts\activate.bat
    ```

When done, run `deactivate`.

Next, install packages:

python -m pip install --upgrade pip
python -m pip install numpy absl-py

Installing IREE packages

Prebuilt packages

Stable release packages are published to PyPI.

=== “Minimal”

To install just the core IREE packages:

``` shell
python -m pip install \
  iree-compiler \
  iree-runtime
```

=== “All packages”

To install IREE packages with tools for all frontends:

``` shell
python -m pip install \
  iree-compiler \
  iree-runtime \
  iree-tools-tf \
  iree-tools-tflite \
  iree-tools-xla
```

!!! Tip

Nightly packages are also published on
[GitHub releases](https://github.com/openxla/iree/releases). To use these,
run `pip install` with this extra option:

```
--find-links https://openxla.github.io/iree/pip-release-links.html
```

Building from source

See Building Python bindings page for instructions for building from source.

Using the Python bindings

API reference pages for IREE's runtime and compiler Python APIs are hosted on readthedocs.

Check out the samples in IREE's samples/colab/ directory and the iree-samples repository for examples using the Python APIs.