在Linux上安装Pillow(Python模块)期间失败

179

我正在尝试使用pip安装Pillow(Python模块),但是它会抛出以下错误:

ValueError: jpeg is required unless explicitly disabled using --disable-jpeg, aborting

因此,正如错误所述,我尝试:

pip install pillow --global-option="--disable-jpeg"

但它失败了:

error: option --disable-jpeg not recognized

你有什么解决这个问题的提示吗?

13个回答

350

有一个针对Pillow 这里的错误报告,指出从Pillow 3.0.0开始,libjpegzlib现在是必需的

在Linux上安装Pillow的安装说明给出了如何安装这些软件包的建议。请注意,并非所有以下软件包都可能在您的计算机上缺失(评论表明只有libjpeg8-dev确实缺失)。

pip / PyPi (Pillow>3.4.2)

最新的Pillow 发行版已经作为wheels在PyPi上提供,这是Python的新标准打包机制。这些预构建的软件包包括所有必要的二进制依赖项,以允许Pillow运行,并且应该在使用PyPi安装Pillow时使用。

要使用wheels,您需要拥有pip>=1.4版本。如果您使用早期版本 (pip --version),请使用以下命令升级pip:

pip install --upgrade pip 

一旦升级了pip,如果有平台特定的wheel文件可用,pip install将默认使用它。使用以下命令将Pillow升级到PyPi上最新版本:
pip install --upgrade pillow

Ubuntu 12.04 LTS或Raspian Wheezy 7.0

sudo apt-get install libtiff4-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev python-tk

Ubuntu 14.04

sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk

Ubuntu 18.04

sudo apt install libjpeg8-dev zlib1g-dev

Fedora 20

libjpeg8-dev在Fedora 20中的对应名称为libjpeg-devel

sudo yum install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel

Mac OS X(通过Homebrew)

在Mac OS X上,如果使用Homebrew,可以使用以下命令解决此问题:

brew install libjpeg zlib

你可能还需要使用以下方法强制链接zlib:
brew link zlib --force

2019年4月更新:在Mojave上,以上方法将无法运行,您需要运行以下步骤(取自Pillow的此错误报告)

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
2016年7月更新:主要仓库中不再提供zlib的公式(Homebrew会提示您安装lzlib,这是一个不同的库,无法解决此问题)。
dupes存储库中提供了一个公式。您可以轻松安装它:只需转到该存储库并按照正常方式进行安装即可。
brew tap homebrew/dupes
brew install zlib

或者您可以按照以下步骤通过xcode安装zlib

xcode-select --install

感谢评论区的phoenix、Panos Angelopoulou、nelsonvarela、benjaminz和Kal。
安装这些后,Pillow的pip安装应该正常工作。

2
只安装 libjpeg8-dev 库可能就足够了。 - Matheus Portela
3
我曾在 Mac OS X 上遇到同样的问题。我通过执行以下命令解决了它: brew install libjpeg brew install zlib - Panos Angelopoulos
2
最好安装libjpeg-dev - 没有'8',然后还发现缺少zlib1g-dev。在执行命令:sudo apt-get install libjpeg-dev zlib1g-dev之后,pip Pillow在Mint 17.1(= Ubuntu 14.04 LTS)上成功安装。 - arntg
7
我必须强制链接zlib:brew link zlib --force - nelsonvarela
2
在某些 Mac 上,brew install zlib 已经不再起作用了,下面的解决方案 xcode-select --install 似乎可以解决问题,请更新您的解决方案,因为它是最全面的,并且是访问者看到的第一个解决方案。非常感谢您的工作! - benjaminz
显示剩余8条评论

36

在树莓派二代上,我遇到了同样的问题。尝试了以下方法后,我解决了这个问题。解决方案如下:

sudo apt-get update
sudo apt-get install libjpeg-dev

sudo apt-get install libjpeg-dev 对于Ubuntu 14也适用 :) - Amir

36

感谢@mfitzp。在我的情况下(CentOS),这些库不可用于yum仓库,但实际上解决方案甚至更容易。我所做的事情是:

sudo yum install python-devel
sudo yum install zlib-devel
sudo yum install libjpeg-turbo-devel

现在,Pillow的安装已经成功完成。


1
谢谢,那对我有用,尽管我不需要python-devel。 - Dustfinger
1
对我也起作用了,只需要安装libjpeg-turbo-devel软件包! - kaycee
在CentOS 7上运行得非常顺畅! - Raptor
这个 amazon linux yum 机器上不需要安装 python-devel。我认为缺少的包是 libjpeg-turbo-devel。 - Neeraj Gupta

14

最快的解决办法是升级pip。对我有用:

pip install --upgrade pip

安装成功,适用于我的情况。 pip install Pillow (如果不起作用,请通过pip install --upgrade pip来清除缓存) 然后再次运行 pip install Pillow - Tzvi Gregory Kaidanov
这对我也起作用。我在CentOS虚拟机上安装了Python 2.6.6和3.5.1,并运行了pip3.5 install --upgrade pip3.5。之后,pip3.5 install pillow无任何问题地运行,并保持了Python2和Python3安装的完整性。 - Evan

13

这对我解决jpeg和zlib错误有帮助:

C:\Windows\system32>pip3 install pillow --global-option="build_e
xt" --global-option="--disable-zlib" --global-option="--disable-jpeg"

1
我需要在一个没有 root 访问权限的环境中安装 Pillow - 这是对我有效的解决方案。 - Nielk

12

这对我起作用了。

   `sudo apt-get install libjpeg-dev`

10
brew install zlib

在OS X上不再起作用,而是提示安装lzlib。安装它并没有帮助。

相反,您需要安装XCode命令行工具,这将安装zlib

xcode-select --install

1
更详细的解释会更有帮助。 - benjaminz

6

我曾经遇到过 ValueError: zlib is required unless explicitly disabled using --disable-zlib 的错误,但将pip从7.x升级到8.y后问题得到了解决。

因此,在进行其他操作之前,建议先尝试更新工具。

可以使用以下命令进行更新:

pip install --upgrade pip

2

如果你使用的是Python 3.9,你只能安装Pillow 8.0版本,低于这个版本的都不能使用。更多信息请参考 这里

所以你可以像这样运行:

pip install Pillow==8.0.0

顺便提一下,这是在MacOS Big Sur 11.2上测试的pip 21.0.1 (python 3.9)版本。


1
救星!谢谢。 - faijan memon

2

成功地工作:

 sudo apt install libjpeg8-dev zlib1g-dev 

1
在我的Ubuntu 20.04和Python 3.8.5上运行良好。 - Redgren Grumbholdt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接