Installation

PlutoPrint is available on PyPI and supports Python 3.10 and newer.

Standard Installation

For most users on standard architectures (Windows win_amd64, Linux x86_64 manylinux, macOS arm64), prebuilt binaries are bundled with the package. You can install simply via pip:

pip install plutoprint

macOS (Homebrew)

On macOS, you can alternatively install PlutoPrint using Homebrew:

brew update
brew install plutoprint

Building from Source / Other Architectures

If you are on an architecture without prebuilt wheels, or if you wish to build PlutoPrint from source, you must have the required system libraries installed. Meson will attempt to build dependencies if they are not found, which can significantly increase build time.

Dependencies

  • Required: cairo, expat, fontconfig, freetype, harfbuzz, icu
  • Optional: curl (for network fetching), turbojpeg, webp

System Setup Guides

Ubuntu / Debian

sudo apt-get install -y \
   build-essential pkg-config \
   meson ninja-build \
   libcairo2-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev \
   libharfbuzz-dev libicu-dev \
   libcurl4-openssl-dev libturbojpeg0-dev libwebp-dev

macOS (Homebrew Dependencies)

brew install llvm pkg-config \
   meson ninja \
   cairo expat fontconfig freetype harfbuzz icu4c \
   curl jpeg-turbo webp

Windows (MSYS2)

Install MSYS2, launch the MSYS2 MinGW 64-bit shell, and run:

pacman -S --needed \
   mingw-w64-x86_64-gcc \
   mingw-w64-x86_64-pkgconf \
   mingw-w64-x86_64-meson \
   mingw-w64-x86_64-ninja \
   mingw-w64-x86_64-expat \
   mingw-w64-x86_64-icu \
   mingw-w64-x86_64-freetype \
   mingw-w64-x86_64-harfbuzz \
   mingw-w64-x86_64-fontconfig \
   mingw-w64-x86_64-cairo \
   mingw-w64-x86_64-curl-winssl \
   mingw-w64-x86_64-libjpeg-turbo \
   mingw-w64-x86_64-libwebp

Verifying Installation

To verify that PlutoPrint is installed and linking correctly to the underlying rendering engine, run:

python -c "import plutoprint; print(plutoprint.__build_info__)"