安装#
警告#
警告
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-pil
和 python3-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 的基本功能。 Zlib 和 libjpeg 默认情况下是必需的。
备注
在我们的 Docker images repo 安装某些操作系统的依赖项。
Pillow的许多功能都需要外部库:
libjpeg 提供jpeg功能。
Pillow 已经过libjpeg版本的测试 6b , 8 , 9-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.x 和 4.0-4.5.1
libfreetype 提供与类型相关的服务
littlecms 提供颜色管理
Pillow 2.2.1及更低版本使用liblcms1,Pillow 2.3.0及更高版本使用liblcms2。经过测试 1.19 和 2.7-2.15 。
libwebp 提供WebP格式。
Pillow 已经过版本测试 0.1.3, 它不能读取透明的WebP文件。版本 0.3.0 上面支持透明度。
tcl/tk 提供对tkinter位图和照片图像的支持。
openjpeg 提供jpeg 2000功能。
枕头已使用Openjpeg进行了测试 2.0.0 , 2.1.0 , 2.3.1 , 2.4.0 和 2.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
orlibfribidi-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.py
或 setup.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/。