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