Pillow

This page describes how to build python Pillow package from source.

https://github.com/python-pillow/Pillow

There are two at least two ways to build Pillow and its dependencies for Windows on Arm

Method 1: Using build scripts from Pillow repository

Prerequisites

  1. Visual Studio 2019 or later

  2. CMake (Windows Arm64 build)

You will need to either clone the Pillow repository or download the source distribution from PyPI for the version you need.

And run the following commands to build and install all of the dependencies

python winbuild\build_prepare.py winbuild\build\build_dep_all.cmd winbuild\build\build_pillow.cmd install

Method 2: Install with Vcpkg

Prerequisites

  1. Visual Studio 2019 or later

  2. Vcpkg Installation

Install required libraries

Install main dependencies using vcpkg

vcpkg install zlib libwebp lcms freetype libjpeg-turbo libpng tiff --triplet=arm64-windows

Pillow supports other image formats too. You need to install the appropriate library and add it to your PATH for pillow to include them.

Add installed library to the LIB and INCLUDE environment variables

This has to be done for all installed libraries.

E.g: to add freetype to env. from powershell

$env:INCLUDE+=";C:\vcpkg\packages\freetype_arm64-windows\include" $env:LIB+=";C:\vcpkg\packages\freetype_arm64-windows\lib"

Install Pillow

pip install pillow --no-build-isolation

Copy library DLLs

If you try to run pillow you might get a DLL import error as Python cannot load thrid party library DLLs we installed using vcpkg. We will have to manually copy all of the DLLs to pillow installation directory.

E.g:

cp C:\vcpkg\packages\zlib_arm64-windows\bin\*.dll C:\venv_pillow\lib\site-packages\PIL\