警告
警告
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.10 |
3.9 |
3.8 |
3.7 |
3.6 |
3.5 |
3.4 |
2.7 |
---|---|---|---|---|---|---|---|---|
枕头>=8.3.2 |
是的 |
是的 |
是的 |
是的 |
是的 |
|||
枕头8.0-8.3.1 |
是的 |
是的 |
是的 |
是的 |
||||
枕头7.0-7.2 |
是的 |
是的 |
是的 |
是的 |
||||
Pillow 6.2.1-6.2.2 |
是的 |
是的 |
是的 |
是的 |
是的 |
|||
Pillow 6.0-6.2.0 |
是的 |
是的 |
是的 |
是的 |
||||
Pillow 5.2-5.4 |
是的 |
是的 |
是的 |
是的 |
是的 |
Python |
3.6 |
3.5 |
3.4 |
3.3 |
3.2 |
2.7 |
2.6 |
2.5 |
2.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
Windows安装
我们为Windows提供了针对支持的Python矩阵编译的Pillow二进制文件,支持的Python有32位和64位版本,采用WORE格式。这些二进制文件包括对除libimagequant和libxcb之外的所有可选库的支持。RAQM支持需要单独安装FriBiDi:
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow
要在MSYS2中安装枕头,请参阅 Building on Windows using MSYS2/MinGW .
MacOS安装
我们以轮子格式为每个受支持的Python版本提供MacOS的二进制文件。其中包括对除libimagequant之外的所有可选库的支持。RAQM支持需要单独安装FriBiDi:
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow
Linux安装
我们为每个受支持的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
。
Freebsd安装
Pillow可通过官方端口或包装系统安装在Freebsd上:
端口: :
cd /usr/ports/graphics/py-pillow && make install clean
包装: :
pkg install py38-pillow
注解
这个 Pillow FreeBSD port 端口团队使用所有受支持的FreeBSD版本测试包。
从源代码生成
下载并提取 compressed archive from PyPI .
外部库
注解
你 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.3
-
-
libfreetype 提供与类型相关的服务
-
littlecms 提供颜色管理
-
Pillow 2.2.1及更低版本使用liblcms1,Pillow 2.3.0及更高版本使用liblcms2。测试对象为 1.19 和 2.7-2.12 。
-
-
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 。
-
Pillow not 支持较早的 1.5 与Debian Jessie一起发行的系列。
-
-
libimagequant 提供改进的颜色量化
-
枕头已经用libimagequant进行了测试 2.6-2.15.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 Docs) (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支持。
安装完前提条件后,运行:
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow
如果先决条件安装在计算机的标准库位置(例如 /usr
或 /usr/local
)不需要其他配置。如果安装在非标准位置,则可能需要通过编辑配置安装工具来使用这些位置。 setup.py
或 setup.cfg
或者通过在命令行中添加环境变量:
CFLAGS="-I/usr/pkg/include" python3 -m pip install --upgrade Pillow
如果 Pillow 以前是在没有必要的前提条件下构建的,则可能需要手动清除PIP缓存或使用 --no-cache-dir
使用新安装的外部库强制生成的选项。
构建选项
-
环境变量:
MAX_CONCURRENCY=n
. Pillow 可以使用多处理来构建扩展。设置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
,--disable-xcb
. 禁用生成相应的功能,即使生成计算机上存在开发库。 -
构建标志:
--enable-zlib
,--enable-jpeg
,--enable-tiff
,--enable-freetype
,--enable-lcms
,--enable-webp
,--enable-webpmux
,--enable-jpeg2000
,--enable-imagequant
,--enable-xcb
. 要求生成相应的功能。如果未找到库,则生成将引发异常。webpmux(webp元数据)依赖于webp支持。tcl和tk也必须一起使用。 -
构建标志:
--vendor-raqm --vendor-fribidi
这些标志用于编译修改后的libraqm版本和在运行时动态加载libfribiti的填充程序。这些是用来编译标准枕头轮的。编译libraqm需要C99兼容的编译器。 -
构建标志:
--disable-platform-guessing
. 跳过所有与平台相关的对自动构建系统的include和library目录的猜测,这些系统在环境变量(例如buildRoot)中配置正确的路径。 -
构建标志:
--debug
. 将调试标志添加到include和library搜索进程,以转储搜索到的所有路径并找到stdout。
样品使用情况:
MAX_CONCURRENCY=1 python3 setup.py build_ext --enable-[feature] install
或使用PIP:
python3 -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:
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow
或者从未压缩的源目录中:
python3 setup.py install
在窗户上建造
我们建议您使用PyPI的预构建的轮子。如果希望手动编译Pillow,可以使用 winbuild
用于CI测试和开发的目录。这些脚本需要Visual Studio 2017或更新版本和NASM。
使用MSYS2/MinGW在Windows上构建
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
现在安装Pillow:
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow
基于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 libxcb
然后看到 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
在阿尔卑斯山,命令是::
sudo apk add python3-dev py3-setuptools
注解
redhat-rpm-config
在Fedora 23上是必需的,但不是早期版本。
的先决条件 Ubuntu 16.04 LTS - 20.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
然后看到 depends/install_raqm.sh
安装libraqm。
系统必备安装在最近 红帽子 , 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)中,为其他测试的发行版提供已知的工作安装过程。
基于Android
添加了基本的Android支持,以便在TermUX环境中进行编译。依赖项可以通过以下方式安装:
pkg install -y python ndk-sysroot clang make \
libjpeg-turbo
这已经在Chromeos的termux应用程序中进行了测试。
平台支撑
当前平台支撑Pillow。二进制发行版是在自愿的基础上为每个版本提供的,但是源代码应该编译并在列出平台支持的任何地方运行。一般来说,我们的目标是支持Linux、MacOS和Windows的所有当前版本。
持续集成目标
这些平台是为每一个变化而构建和测试的。
操作系统 |
经过测试的Python版本 |
经过测试的架构 |
---|---|---|
阿尔卑斯山的 |
3.9 |
X86—64 |
亚马逊Linux 2 |
3.7 |
X86—64 |
拱门 |
3.9 |
X86—64 |
世纪7号 |
3.6 |
X86—64 |
CentOS 8号 |
3.6 |
X86—64 |
CentOS流8 |
3.6 |
X86—64 |
Debian 10巴斯特 |
3.7 |
x86 |
软呢帽33 |
3.9 |
X86—64 |
软呢帽34 |
3.9 |
X86—64 |
加泰罗尼亚macOS 10.15 |
3.6、3.7、3.8、3.9、3.10、PyPy3 |
X86—64 |
Ubuntu Linux 18.04 LTS(仿生) |
3.6 |
X86—64 |
Ubuntu Linux 20.04 LTS(焦点) |
3.6、3.7、3.8、3.9、3.10、PyPy3 |
X86—64 |
3.8 |
arm64v8、ppc64le、s390x |
|
Windows Server 2016 |
3.6 |
X86—64 |
Windows服务器2019 |
3.6、3.7、3.8、3.9、3.10、PyPy3 |
X86、X86—64 |
3.9/MinGW |
X86、X86—64 |
其他平台
据报道,这些平台可以在上述版本上工作。
注解
参与者请在您的平台上测试Pillow,然后更新此文档并发送请求。
操作系统 |
经过测试的Python
版本
|
最近一次测试
枕头版
|
经过测试
处理器
|
---|---|---|---|
MacOS 11.0大压力 |
3.7、3.8、3.9 |
8.3.2 |
臂 |
3.6、3.7、3.8、3.9 |
8.3.2 |
X86—64 |
|
加泰罗尼亚macOS 10.15 |
3.6、3.7、3.8、3.9 |
8.3.1 |
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 |
|
费多拉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 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/。
讨论区