Install the Python package
When installing Python libraries for Hybrid SaaS Maia runners, make sure the libraries are compiled for the correct platform. Hybrid SaaS Maia runners run on Linux (Ubuntu). If you install packages on a different operating system (for example, macOS or Windows),pip may fetch incompatible binaries that can’t run inside the Maia runner. This often causes runtime errors.
Python scripts in Maia should be written to be version-agnostic where possible. The Python runtime bundled with the Maia runner is updated periodically, and there is no guarantee a specific version will remain in place indefinitely. Be aware of this when installing libraries, and try to ensure the libraries you install are compatible with a range of Python versions where possible.At time of writing (April 2026), the Maia runner uses Python 3.12.
-
Create a directory on your local machine to store the downloaded libraries:
-
Download the required libraries using
pipwith the--platformand--only-binaryflags:Command breakdown:--target=./python_libs: Specifies the installation directory.--platform=manylinux2014_x86_64: This flag is critical. It directspipto download the package for the specified Linux platform and architecture, matching the Maia runner‘s environment.--only-binary=:all:: Ensures thatpipdownloads pre-compiled binary wheels instead of attempting to build from source.
-
After the command completes, the
./python_libsfolder contains the specified libraries and all their dependencies, compiled for the correct platform. -
Copy the entire folder into an S3 bucket (for AWS-hosted Maia runners), Azure Blob Storage container (for Azure-hosted Maia runners), or GCS bucket (for GKE-hosted Maia runners) that is accessible to the Maia runner.
At this point, you can delete the package from your local drive, if you wish.
- The IAM role tied to the Maia runner (AWS) or the managed identity (Azure) must have certain user permissions to access this storage location. Read Storing external files for details of these permissions.
-
Set a Maia runner parameter
EXTENSION_LIBRARY_LOCATION, with the value being the absolute path of the cloud storage folder containing the package and its dependencies:- AWS S3:
s3://my-additional-libraries - Azure Blob Storage:
https://mystorageaccount.blob.core.windows.net/my-files - GCS:
gs://my-bucket/my-python-libs
- AWS S3: