安装

警告

警告

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

警告

Pillow >=1.0 不再支持 import Image 。请改为使用 from PIL import Image

警告

Pillow >=2.1.0不再支持 import _imaging 。请使用 from PIL.Image import core as _imaging

笔记

注解

下面的python版本支持Pillow

Python

3.8

3.7

3.6

3.5

3.4

3.3

3.2

2.7

2.6

2.5

2.4

枕头>=7

是的

是的

是的

是的

枕头6.2.1-6.2.2

是的

是的

是的

是的

是的

枕头6.0-6.2.0

是的

是的

是的

是的

枕头5.2-5.4

是的

是的

是的

是的

是的

枕头5.0-5.1

是的

是的

是的

是的

枕头4

是的

是的

是的

是的

是的

枕头2-3

是的

是的

是的

是的

是的

是的

枕头<2

是的

是的

是的

是的

基本安装

注解

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

安装 Pillow pip ::

python -m pip install --upgrade pip
python -m pip install --upgrade Pillow

Windows安装

我们为Windows提供Pillow二进制文件,这些文件是为32位和64位版本的wheel、egg和可执行安装程序中支持的pythons矩阵编译的。除了raqm和libimagequant,这些二进制文件包含所有可选库:

python -m pip install --upgrade pip
python -m pip install --upgrade Pillow

MacOS安装

我们为每个受支持的Python版本提供MacOS二进制文件,格式为wheel。其中包括对除libImageQuant之外的所有可选库的支持。RAQM支持要求分别安装libraqm、fribidi和harfbuzz:

python -m pip install --upgrade pip
python -m pip install --upgrade Pillow

Linux安装

我们以manylinux车轮格式为每个受支持的python版本提供Linux二进制文件。其中包括对除libImageQuant之外的所有可选库的支持。RAQM支持要求分别安装libraqm、fribidi和harfbuzz:

python -m pip install --upgrade pip
python -m pip install --upgrade Pillow

大多数主要的Linux发行版,包括Fedora、Debian/Ubuntu和ArchLinux,也包括以前包含pil的包中的 Pillow 。 python-imaging .

Freebsd安装

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

端口: :

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

包装: :

pkg install py36-pillow

注解

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

从源代码生成

下载并提取 compressed archive from PyPI .

外部库

注解

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

注解

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

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

  • libjpeg 提供jpeg功能。

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

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

  • zlib 提供对压缩PNG的访问

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

  • libtiff 提供压缩的TIFF功能

    • 枕头已经过libtiff版本的测试 3.x4.0-4.1

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

  • littlecms 提供颜色管理

    • Pillow 版本2.2.1及以下使用liblcms1, Pillow 2.3.0及以上使用liblcms2。用试验 1.192.7-2.9 .

  • libwebp 提供WebP格式。

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

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

  • openjpeg 提供jpeg 2000功能。

    • Pillow 已经用openjpeg测试过了 2.0.02.1.02.3.1 .

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

  • libimagequant 提供改进的颜色量化

    • 枕头已经用libimagequant测试过了。 2.6-2.12.6

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

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

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

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

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

    • libraqm动态加载在bendle 5.0.0及更高版本中,因此如果安装了所有库,则支持可用。

    • Windows支持:Raqm不包括在预构建的轮子中

安装完前提条件后,运行:

python -m pip install --upgrade pip
python -m pip install --upgrade Pillow

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

CFLAGS="-I/usr/pkg/include" python -m pip install --upgrade Pillow

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

构建选项

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

  • 构建标志: --disable-zlib--disable-jpeg--disable-tiff--disable-freetype--disable-lcms--disable-webp--disable-webpmux--disable-jpeg2000--disable-imagequant . 禁用生成相应的功能,即使生成计算机上存在开发库。

  • 构建标志: --enable-zlib--enable-jpeg--enable-tiff--enable-freetype--enable-lcms--enable-webp--enable-webpmux--enable-jpeg2000--enable-imagequant . 要求生成相应的功能。如果未找到库,则生成将引发异常。webpmux(webp元数据)依赖于webp支持。tcl和tk也必须一起使用。

  • 构建标志: --disable-platform-guessing . 跳过所有与平台相关的对自动构建系统的include和library目录的猜测,这些系统在环境变量(例如buildRoot)中配置正确的路径。

  • 构建标志: --debug . 将调试标志添加到include和library搜索进程,以转储搜索到的所有路径并找到stdout。

样品使用情况:

MAX_CONCURRENCY=1 python setup.py build_ext --enable-[feature] install

或使用PIP:

python -m pip install --upgrade Pillow --global-option="build_ext" --global-option="--enable-[feature]"

建立在MacOS上

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

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

brew install libtiff libjpeg webp little-cms2

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

brew install freetype harfbuzz fribidi

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

现在安装Pillow:

python -m pip install --upgrade pip
python -m pip install --upgrade Pillow

或者从未压缩的源目录中:

python setup.py install

在窗户上建造

我们不建议尝试在Windows上构建。这是一个曲折的通道迷宫,大部分是死胡同。中有Windows内部版本的生成脚本和注释 winbuild 目录。

基于Freebsd的建筑

注解

仅对FreeBSD 10和11进行测试

确保安装了Python的开发库:

sudo pkg install python3

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

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

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

在Linux上构建

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

在Debian或Ubuntu中:

sudo apt-get install python3-dev python3-setuptools

在费多拉,命令是:

sudo dnf install python3-devel redhat-rpm-config

注解

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

系统必备安装在 Ubuntu 16.04升 用:

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

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

系统必备安装在最近 RedHat CENTOS**或 **Fedora 用:

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

请注意,包管理器可能是yum或dnf,这取决于确切的分布。

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

基于Android

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

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

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

平台支撑

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

持续集成目标

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

操作系统

测试过的python版本

测试架构

阿尔卑斯山的

3.7

X86—64

拱门

3.7

X86—64

亚马逊Linux 1

3.6

X86—64

亚马逊Linux 2

3.6

X86—64

世纪6

3.6

X86—64

世纪7号

3.6

X86—64

CentOS 8号

3.6

X86—64

Debian 9伸展

3.5

x86

Debian 10巴斯特

3.7

x86

软呢帽30

3.7

X86—64

软呢帽31

3.7

X86—64

加泰罗尼亚macOS 10.15

3.5、3.6、3.7、3.8、PyPy3

X86—64

Ubuntu Linux 16.04 LTS版

3.5、3.6、3.7、3.8、PyPy3

X86—64

Windows Server 2012 R2

3.5、3.8条

X86、X86—64

PyPy3,3.7/明威

x86

Windows服务器2019

3.5、3.6、3.7、3.8条

X86、X86—64

PyPy3型

x86

其他平台

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

注解

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

操作系统

测试过的python版本

最新测试Pillow版本

已测试的处理器

加泰罗尼亚macOS 10.15

3.5、3.6、3.7、3.8条

7.0.0

X86—64

Macos 10.14莫哈韦

2.7、3.5、3.6、3.7条

6.0.0

X86—64

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

费多拉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版

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

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 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专业版

2.7、3.2、3.3

3.4.1

X86—64

Windows Server 2008 R2企业版

3.3

X86—64

旧版本

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