在Linux中安装Pillow(Python模块)时失败

时间:2016-01-06 11:16:29

标签: python linux pillow

我尝试使用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

任何提示如何处理它?<​​/ p>

13 个答案:

答案 0 :(得分:291)

Pillow here报告了一个错误,表明从枕头3.0.0起libjpegzlib现在是required

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

pip / PyPi(Pillow&gt; 3.4.2)

Pillow的latest releases在PyPi上可用wheels - Python的新标准打包机制。这些预构建的包包含所有必要的二进制依赖项,以允许Pillow运行,如果您想使用PyPi安装Pillow,则应该使用它们

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

pip install --upgrade pip 

升级pip后,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)

在带有Homebrew的Mac OS X上,可以使用以下方法修复此问题:

brew install libjpeg zlib

您可能还需要使用以下方法强制链接zlib:

brew link zlib --force

2019年4月更新:在Mojave中,以上操作不起作用,您需要运行以下as taken from this bug report on 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

或者您可以通过zlib安装xcode,如下所示:

xcode-select --install

感谢凤凰,Panos Angelopoulou,nelsonvarela,benjaminz和Kal的评论

安装完毕后,Pillow的pip安装应正常工作。

答案 1 :(得分:36)

在Raspberry pi II上,我遇到了同样的问题。尝试以下后,我解决了这个问题。解决方案是:

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

答案 2 :(得分:33)

谢谢@mfitzp。在我的情况下(CentOS)这些库在yum repo中不可用,但实际上解决方案更容易。我做了什么:

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

现在枕头的安装顺利完成。

答案 3 :(得分:12)

最快的解决方案是提升点数。对我有用:

pip install --upgrade pip

答案 4 :(得分:12)

这对我有用。

   `sudo apt-get install libjpeg-dev`

答案 5 :(得分:10)

brew install zlib
OS X上的

不再工作,而是提示安装lzlib。安装没有帮助。

而是安装XCode命令行工具,并应安装zlib

xcode-select --install

答案 6 :(得分:6)

我有 dockerBuildContext, err := os.Open("<path to>/docker-debug- container/docker-debug-container.tar") defer dockerBuildContext.Close() opt := types.ImageBuildOptions{ Context: dockerBuildContext, CPUSetCPUs: "2", CPUSetMems: "12", CPUShares: 20, CPUQuota: 10, CPUPeriod: 30, Memory: 256, MemorySwap: 512, ShmSize: 10, CgroupParent: "cgroup_parent", // Dockerfile: "Dockerfile", } _, err = cli.ImageBuild(context.Background(), nil, opt) ,但从7.x到8.y的升级点解决了这个问题。

所以我会先尝试更新工具。

可以使用以下方式完成:

ValueError: zlib is required unless explicitly disabled using --disable-zlib

答案 7 :(得分:5)

这对我有用,可以解决jpeg和zlib错误:

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

答案 8 :(得分:2)

另一种选择,如果您不想安装libjpeg:

CFLAGS="--disable-jpeg" pip install pillow

来自https://pillow.readthedocs.io/en/3.0.0/installation.html#external-libraries

答案 9 :(得分:1)

工作成功:

 sudo apt install libjpeg8-dev zlib1g-dev 

答案 10 :(得分:0)

尝试

pip install pillow

如果不起作用,请尝试清除

cache by pip install --upgrade pip

然后再次运行

pip install pillow

答案 11 :(得分:0)

任何使用 Python 3.9 的人都只能安装 Pillow 8.0,任何低于该版本的都无法使用。如需更多信息,请查看 here

所以你可以像这样运行它:

pip install Pillow==8.0.0

顺便说一句,这是在 MacOS Big Sur 11.2 上的 pip 21.0.1 (python 3.9) 上测试的

答案 12 :(得分:-1)

在debian / ubuntu上你只需要: 中的libjpeg62涡轮-dev的

这么简单sudo apt install libjpeg62-turbo-devpip install pillow