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.

!!! warning 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 and 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

For now, packages can be installed from our GitHub releases:

=== “Minimal”

To install just the core IREE packages:

``` shell
python -m pip install \
  iree-compiler \
  iree-runtime \
  --find-links https://github.com/google/iree/releases
```

=== “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 \
  --find-links https://github.com/google/iree/releases
```

!!! info We plan to publish packages on PyPI as they become more stable.

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 colab/ directory and the iree-samples repository for examples using the Python APIs.

Troubleshooting