安装#

警告#

警告

Pillow 和 PIL 不能在同一环境中共存。在安装 Pillow 之前,请卸载PIL。

警告

枕头>=1.0不再支持 import Image 。请使用 from PIL import Image 取而代之的是。

警告

枕头>=2.1.0不再支持 import _imaging 。请使用 from PIL.Image import core as _imaging 取而代之的是。

Python支持#

枕头支持这些 Python 版本。

较新版本#

Python

3.12

3.11

3.10

3.9

3.8

3.7

3.6

3.5

枕头>=10.1

是的

是的

是的

是的

是的

枕头10.0

是的

是的

是的

是的

枕头9.3-9.5

是的

是的

是的

是的

是的

枕头9.0-9.2

是的

是的

是的

是的

枕头8.3.2-8.4

是的

是的

是的

是的

是的

枕头8.0-8.3.1

是的

是的

是的

是的

枕头7.0-7.2

是的

是的

是的

是的

较旧的版本#

Python

3.8

3.7

3.6

3.5

3.4

3.3

3.2

2.7

2.6

2.5

2.4

Pillow 6.2.1-6.2.2

是的

是的

是的

是的

是的

Pillow 6.0-6.2.0

是的

是的

是的

是的

Pillow 5.2-5.4

是的

是的

是的

是的

是的

Pillow 5.0-5.1

是的

是的

是的

是的

Pillow 4

是的

是的

是的

是的

是的

Pillow 2-3

是的

是的

是的

是的

是的

是的

Pillow <2

是的

是的

是的

是的

基本安装#

备注

以下说明将安装支持最常见图像格式的 Pillow 。见 外部库 获取支持的外部库的完整列表。

安装 Pillow pip ::

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow

我们为每个受支持的Python版本提供了适用于Linux的二进制文件(采用manylinux轮格式)。其中包括对除libimagequant之外的所有可选库的支持。RAQM支持需要单独安装FriBiDi:

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow

大多数主要的Linux发行版,包括Fedora、Ubuntu和ArchLInux,也在以前包含PIL的软件包中包含Pillow。 python-imaging 。Debian将其分成两个包, python3-pilpython3-pil.imagetk

我们以轮子格式为每个受支持的Python版本提供MacOS的二进制文件。其中包括对除libimagequant之外的所有可选库的支持。RAQM支持需要单独安装FriBiDi:

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow

虽然我们为x86-64和arm64提供了二进制文件,但我们不提供通用的二进制文件。但是,将我们当前的二进制文件组合起来创建一个::

python3 -m pip download --only-binary=:all: --platform macosx_10_10_x86_64 Pillow
python3 -m pip download --only-binary=:all: --platform macosx_11_0_arm64 Pillow
python3 -m pip install delocate

然后,使用下载的轮子的名称,使用Python将它们组合在一起:

from delocate.fuse import fuse_wheels
fuse_wheels('Pillow-9.4.0-2-cp39-cp39-macosx_10_10_x86_64.whl', 'Pillow-9.4.0-cp39-cp39-macosx_11_0_arm64.whl', 'Pillow-9.4.0-cp39-cp39-macosx_11_0_universal2.whl')

我们提供了适用于Windows的Pillow二进制文件,这些文件是为64位版本的所支持的Python矩阵编译的,采用轮式格式。这些二进制文件支持除libImagequant和libxcb之外的所有可选库。RAQM支持需要单独安装FriBiDi:

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow

要在MSYS2中安装枕头,请参阅 Building on Windows using MSYS2/MinGW .

Pillow可通过官方端口或包装系统安装在Freebsd上:

端口: :

cd /usr/ports/graphics/py-pillow && make install clean

包装: :

pkg install py38-pillow

备注

这个 Pillow FreeBSD port 端口团队使用所有受支持的FreeBSD版本测试包。

从源代码生成#

外部库#

备注

do not need to install all supported external libraries 使用 Pillow 的基本功能。 Zliblibjpeg 默认情况下是必需的。

备注

在我们的 Docker images repo 安装某些操作系统的依赖项。

Pillow的许多功能都需要外部库:

  • libjpeg 提供jpeg功能。

    • Pillow 已经过libjpeg版本的测试 6b89-9d 和libjpeg turbo版本 8 .

    • 从 Pillow 3.0.0开始,默认情况下需要libjpeg,但使用 --disable-jpeg 旗帜。

  • zlib 提供对压缩PNG的访问

    • 从 Pillow 3.0.0开始,默认情况下需要zlib,但可以使用禁用 --disable-zlib 旗帜。

  • libtiff 提供压缩的TIFF功能

    • Pillow已经在libtiff版本上进行了测试 3.x4.0-4.5.1

  • libfreetype 提供与类型相关的服务

  • littlecms 提供颜色管理

    • Pillow 2.2.1及更低版本使用liblcms1,Pillow 2.3.0及更高版本使用liblcms2。经过测试 1.192.7-2.15

  • libwebp 提供WebP格式。

    • Pillow 已经过版本测试 0.1.3, 它不能读取透明的WebP文件。版本 0.3.0 上面支持透明度。

  • tcl/tk 提供对tkinter位图和照片图像的支持。

  • openjpeg 提供jpeg 2000功能。

    • 枕头已使用Openjpeg进行了测试 2.0.02.1.02.3.12.4.02.5.0

    • Pillow not 支持较早的 1.5 与Debian Jessie一起发行的系列。

  • libimagequant 提供改进的颜色量化

    • 枕头已经用libImagequant进行了测试 2.6-4.2.1

    • libImageQuant是许可的gplv3,这比Pillow许可证更为严格,因此我们将不会分发启用libImageQuant支持的二进制文件。

  • libraqm 提供复杂的文本布局支持。

    • libraqm提供双向文本支持(使用fribidi)、变形(使用harfbuzz)和适当的脚本项化。因此,RAQM可以支持Unicode所覆盖的大多数写入系统。

    • libraqm依赖于以下库:freetype、harfbuzz、fribidi,如果您的系统中没有可用的软件包,请确保在安装libraqm之前安装它们。

    • 如果没有libraqm,则不支持设置文本方向或字体功能。

    • Pillow wheels since version 8.2.0 include a modified version of libraqm that loads libfribidi at runtime if it is installed. On Windows this requires compiling FriBiDi and installing fribidi.dll into a directory listed in the Dynamic-link library search order (Microsoft Learn) (fribidi-0.dll or libfribidi-0.dll are also detected). See Build Options to see how to build this version.

    • Pillow的早期版本(5.0.0到8.1.2)在运行时动态链接libraqm。

  • libxcb 提供Grab Screenx11支持。

如果您没有从源代码构建python,请确保安装了python的开发库。

在Debian或Ubuntu中:

sudo apt-get install python3-dev python3-setuptools

在费多拉,命令是:

sudo dnf install python3-devel redhat-rpm-config

在阿尔卑斯山,命令是::

sudo apk add python3-dev py3-setuptools

备注

redhat-rpm-config 在Fedora 23上是必需的,但不是早期版本。

必备条件 Ubuntu 16.04 LTS - 22.04 LTS 安装时附带::

sudo apt-get install libtiff5-dev libjpeg8-dev libopenjp2-7-dev zlib1g-dev \
    libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python3-tk \
    libharfbuzz-dev libfribidi-dev libxcb1-dev

要安装libraqm, sudo apt-get install meson 然后看到 depends/install_raqm.sh

系统必备安装在最近 红帽子CentOS公司费多拉 用:

sudo dnf install libtiff-devel libjpeg-devel openjpeg2-devel zlib-devel \
    freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel \
    harfbuzz-devel fribidi-devel libraqm-devel libimagequant-devel libxcb-devel

请注意,包管理器可能是yum或DNF,具体取决于具体的分发。

安装必备组件是为了 阿尔卑斯山 使用::

sudo apk add tiff-dev jpeg-dev openjpeg-dev zlib-dev freetype-dev lcms2-dev \
    libwebp-dev tcl-dev tk-dev harfbuzz-dev fribidi-dev libimagequant-dev \
    libxcb-dev libpng-dev

也见 Dockerfile 在测试基础结构repo(https://github.com/python-bellow/docker-images)中,为其他测试的发行版提供已知的工作安装过程。

Xcode命令行工具是编译 Pillow 部分所必需的。通过运行安装工具 xcode-select --install 从命令行。即使安装了完整的Xcode包,也需要使用命令行工具。可能需要跑步 sudo xcodebuild -license 在使用工具之前接受许可证。

安装外部库的最简单方法是通过 Homebrew . 安装自制啤酒后,运行:

brew install libjpeg libtiff little-cms2 openjpeg webp

要在MacOS上安装libraqm,请使用homebrew安装其依赖项:

brew install freetype harfbuzz fribidi

然后看到 depends/install_raqm_cmake.sh 安装libraqm。

我们建议您使用PyPI的预构建的轮子。如果希望手动编译Pillow,可以使用 winbuild 用于CI测试和开发的目录。这些脚本需要Visual Studio 2017或更新版本和NASM。

这些脚本还从源代码的本地副本安装Pillow,因此 Installing 之后将不再需要说明。

To build Pillow using MSYS2, make sure you run the MSYS2 MinGW 32-bit or MSYS2 MinGW 64-bit console, not MSYS2 directly.

以下指令针对64位内部版本,对于32位的所有出现的替换 mingw-w64-x86_64- 具有 mingw-w64-i686- .

确保安装了Python和GCC::

pacman -S \
    mingw-w64-x86_64-gcc \
    mingw-w64-x86_64-python3 \
    mingw-w64-x86_64-python3-pip \
    mingw-w64-x86_64-python3-setuptools

系统必备安装在 MSYS2 MinGW 64-bit 用:

pacman -S \
    mingw-w64-x86_64-libjpeg-turbo \
    mingw-w64-x86_64-zlib \
    mingw-w64-x86_64-libtiff \
    mingw-w64-x86_64-freetype \
    mingw-w64-x86_64-lcms2 \
    mingw-w64-x86_64-libwebp \
    mingw-w64-x86_64-openjpeg2 \
    mingw-w64-x86_64-libimagequant \
    mingw-w64-x86_64-libraqm

https://www.msys2.org/docs/python/ states that setuptools >= 60 does not work with MSYS2. To workaround this, before installing Pillow you must run:

export SETUPTOOLS_USE_DISTUTILS=stdlib

备注

仅对FreeBSD 10和11进行测试

确保安装了Python的开发库:

sudo pkg install python3

系统必备安装在 FreeBSD 10 or 11 用:

sudo pkg install jpeg-turbo tiff webp lcms2 freetype2 openjpeg harfbuzz fribidi libxcb

然后看到 depends/install_raqm_cmake.sh 安装libraqm。

添加了基本的Android支持,以便在TermUX环境中进行编译。依赖项可以通过以下方式安装:

pkg install -y python ndk-sysroot clang make \
    libjpeg-turbo

这已经在Chromeos的termux应用程序中进行了测试。

正在安装#

安装必备组件后,要从PyPI上的源代码安装Pillow,请运行::

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow --no-binary :all:

如果先决条件安装在计算机的标准库位置(例如 /usr/usr/local )不需要其他配置。如果安装在非标准位置,则可能需要通过编辑配置安装工具来使用这些位置。 setup.pysetup.cfg 或者通过在命令行中添加环境变量:

CFLAGS="-I/usr/pkg/include" python3 -m pip install --upgrade Pillow --no-binary :all:

如果 Pillow 以前是在没有必要的前提条件下构建的,则可能需要手动清除PIP缓存或使用 --no-cache-dir 使用新安装的外部库强制生成的选项。

如果您想要从源代码的本地副本进行安装,可以使用以下命令从GitHub进行克隆 git clone https://github.com/python-pillow/Pillow 或下载并解压 compressed archive from PyPI

导航到Pillow目录后,运行::

python3 -m pip install --upgrade pip
python3 -m pip install .

构建选项#

  • 环境变量: MAX_CONCURRENCY=n . Pillow 可以使用多处理来构建扩展。设置 MAX_CONCURRENCY 设置要使用的CPU数,或者可以使用设置1禁用并行生成。默认情况下,它使用4个CPU,如果4个CPU不可用,则使用现有的所有CPU。

  • 配置设置: -C zlib=disable-C jpeg=disable-C tiff=disable-C freetype=disable-C raqm=disable-C lcms=disable-C webp=disable-C webpmux=disable-C jpeg2000=disable-C imagequant=disable-C xcb=disable 。禁用生成相应功能,即使生成计算机上存在开发库也是如此。

  • 配置设置: -C zlib=enable-C jpeg=enable-C tiff=enable-C freetype=enable-C raqm=enable-C lcms=enable-C webp=enable-C webpmux=enable-C jpeg2000=enable-C imagequant=enable-C xcb=enable 。要求构建相应的功能。如果找不到库,则生成将引发异常。Webpmux(WebP元数据)依赖于WebP支持。TCL和TK也必须一起使用。

  • 配置设置: -C raqm=vendor-C fribidi=vendor 。这些标志用于编译修改后的libraqm版本和在运行时动态加载libFribiti的填充程序。这些是用来编译标准枕头车轮的。编译libraqm需要C99兼容的编译器。

  • 构建标志: -C platform-guessing=disable 。对于在环境变量(例如Buildroot)中配置正确路径的自动构建系统,跳过对Include和库目录的所有平台相关猜测。

  • 构建标志: -C debug=true 。向Include和库搜索进程添加调试标志,以将搜索到和找到的所有路径转储到stdout。

样品使用情况:

python3 -m pip install --upgrade Pillow -C [feature]=enable

平台支撑#

当前平台支撑Pillow。二进制发行版是在自愿的基础上为每个版本提供的,但是源代码应该编译并在列出平台支持的任何地方运行。一般来说,我们的目标是支持Linux、MacOS和Windows的所有当前版本。

持续集成目标#

这些平台是为每一个变化而构建和测试的。

操作系统

经过测试的Python版本

经过测试的架构

阿尔卑斯山的

3.9

X86—64

亚马逊Linux 2

3.9

X86—64

亚马逊Linux 2023

3.9

X86—64

拱门

3.9

X86—64

世纪7号

3.9

X86—64

CentOS流8

3.9

X86—64

CentOS Stream 9

3.9

X86—64

Debian 11牛眼

3.9

X86—64

Debian 12书虫

3.11

X86、X86—64

软呢帽37

3.11

X86—64

软呢帽38

3.11

X86—64

Gentoo

3.9

X86—64

MacOS 12蒙特利

3.8、3.9、3.10、3.11、3.12、PyPy3

X86—64

Ubuntu Linux 20.04 LTS(焦点)

3.8

X86—64

Ubuntu Linux 22.04 LTS(Jammy)

3.8、3.9、3.10、3.11、3.12、PyPy3

X86—64

3.10

arm64v8、ppc64le、s390x

Windows Server 2016

3.8

X86—64

Windows Server 2022

3.8、3.9、3.10、3.11、3.12、PyPy3

X86—64

3.11

x86

3.9(微型GW)

X86—64

3.8、3.9(Cygwin)

X86—64

其他平台#

据报道,这些平台可以在上述版本上工作。

备注

参与者请在您的平台上测试Pillow,然后更新此文档并发送请求。

操作系统

经过测试的Python
版本
最近一次测试
枕头版
经过测试
处理器

MacOS 13文图拉

3.8、3.9、3.10、3.11

10.0.1

3.7

9.5.0

MacOS 12 Big Sur

3.7、3.8、3.9、3.10、3.11

9.3.0

MacOS 11 Big Sur

3.7、3.8、3.9、3.10

8.4.0

3.7、3.8、3.9、3.10、3.11

9.4.0

X86—64

3.6

8.4.0

加泰罗尼亚macOS 10.15

3.6、3.7、3.8、3.9

8.3.2

X86—64

3.5

7.2.0

Macos 10.14莫哈韦

3.5、3.6、3.7、3.8条

7.2.0

X86—64

2.7

6.0.0

3.4

5.4.1

Macos 10.13 Sierra高地

2.7、3.4、3.5、3.6

4.2.1

X86—64

马科斯10.12塞拉

2.7、3.4、3.5、3.6

4.1.1

X86—64

Mac OS X 10.11 El Capitan

2.7、3.4、3.5、3.6、3.7

5.4.1

X86—64

3.3

4.1.0

Mac OS X 10.9 Mavericks

2.7、3.2、3.3、3.4

3.0.0

X86—64

Mac OS X 10.8山地狮

2.6、2.7、3.2、3.3

X86—64

红帽Linux 6

2.6

x86

CITOS 6.3

2.7,3.3

x86

CentOS 8号

3.9

9.0.0

X86—64

费多拉23

2.7,3.4

3.1.0

X86—64

Ubuntu Linux 12.04 LTS(精确)

2.6、3.2、3.3、3.4、3.5
PyPy5.3.1、PyPy3 v2.4.0

3.4.1

X86、X86—64

2.7

4.3.0

X86—64

2.7,3.2

3.4.1

聚合氯化铝

Ubuntu Linux 10.04 LTS(Lucid)

2.6

2.3.0

X86、X86—64

Debian 8.2杰西

2.7,3.4

3.1.0

X86—64

拉斯比杰西

2.7,3.4

3.1.0

拉氏伸展

2.7,3.5

4.0.0

覆盆子PI OS

3.6、3.7、3.8、3.9

8.2.0

2.7

6.2.2

GUTOU-Linux

2.7,3.2

2.1.0

X86—64

FreeBSD 11.1

2.7、3.4、3.5、3.6

4.3.0

X86—64

FreeBSD 10.3

2.7、3.4、3.5

4.2.0

X86—64

FreeBSD 10.2

2.7,3.4

3.1.0

X86—64

Windows 10

3.7

7.1.0

X86—64

Windows 10/Cygwin 3.3

3.6、3.7、3.8、3.9

8.4.0

X86—64

Windows 8.1专业版

2.6、2.7、3.2、3.3、3.4

2.4.0

X86、X86—64

Windows 8专业版

2.6、2.7、3.2、3.3、3.4A3

2.2.0

X86、X86—64

Windows 7专业版

3.7

7.0.0

X86、X86—64

Windows Server 2008 R2企业版

3.3

X86—64

旧版本#

您可以从 release history at PyPI 通过直接的URL访问,例如https://pypi.org/project/bellow/1.0/。