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

mch*_*rnc 158 python linux pillow

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

ValueError: jpeg is required unless explicitly disabled using --disable-jpeg, aborting
Run Code Online (Sandbox Code Playgroud)

所以当错误说,我试过:

pip install pillow --global-option="--disable-jpeg"
Run Code Online (Sandbox Code Playgroud)

但它失败了:

error: option --disable-jpeg not recognized
Run Code Online (Sandbox Code Playgroud)

任何提示如何处理它?

mfi*_*tzp 307

有报道枕头的错误在这里,这表明libjpegzlib现在需要的枕头3.0.0.

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

pip/PyPi(枕头> 3.4.2)

最新版本枕头的可PyPI上的轮子 - Python的新标准包装机制.这些预构建的包包含所有必要的二进制依赖项,以允许Pillow运行,如果您想使用PyPi安装Pillow,则应该使用它们

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

pip install --upgrade pip 
Run Code Online (Sandbox Code Playgroud)

一旦pip升级,pip install在默认情况下,如果他们都可以将使用特定于平台的轮文件.使用以下命令将Pillow升级到PyPi上提供的最新版本:

pip install --upgrade pillow
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

Ubuntu 18.04

sudo apt install libjpeg8-dev zlib1g-dev
Run Code Online (Sandbox Code Playgroud)

Fedora 20

Fedora的20当量的libjpeg8-devlibjpeg-devel.

sudo yum install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel
Run Code Online (Sandbox Code Playgroud)

Mac OS X(通过Homebrew)

在Mac OS X上使用Homebrew,可以使用以下方法修复:

brew install libjpeg zlib
Run Code Online (Sandbox Code Playgroud)

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

brew link zlib --force
Run Code Online (Sandbox Code Playgroud)

感谢Panos Angelopoulous和nelsonvarela的评论.

20167月5日更新:在Homebrew的当前版本中,上面可能不再有效,因为zlib主存储库中不再有可用的公式(Homebrew将提示您安装lzlib哪个是不同的库并且不能解决此问题).

还有就是在可用公式受骗者库.您可以点击此存储库,并正常安装:

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
Run Code Online (Sandbox Code Playgroud)

或者您可以安装zlibvia xcode,如下所示:

brew tap homebrew/dupes
brew install zlib
Run Code Online (Sandbox Code Playgroud)

感谢benjaminz在评论和Kal的回答下面

安装完成后,Pipow的pip安装应该正常工作.

  • 只是安装`libjpeg8-dev`对我有用. (42认同)
  • 我不得不强制链接zlib:`brew link zlib --force` (6认同)
  • 我面临着与Mac OS X相同的问题.我解决了它执行`brew install libjpeg``brew install zlib` (3认同)
  • 只是`libjpeg8-dev`可能没问题. (2认同)
  • 最好安装libjpeg-dev - 没有'8',然后还发现zlib1g-dev也丢失了.之后:`sudo apt-get install libjpeg-dev zlib1g-dev` pip Pillow install在Mint 17.1(= Ubuntu 14.04 LTS)上工作. (2认同)
  • `brew install zlib`不再适用于某些Mac,`xcode-select --install`下面的解决方案似乎可以解决问题,请更新您的解决方案,因为它是最具包容性的,是访客看到的第一个解决方案.非常感谢你的工作! (2认同)

小智 37

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

sudo apt-get update
sudo apt-get install libjpeg-dev
Run Code Online (Sandbox Code Playgroud)


mch*_*rnc 33

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

sudo yum install python-devel
sudo yum install zlib-devel
sudo yum install libjpeg-turbo-devel
Run Code Online (Sandbox Code Playgroud)

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


小智 12

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

pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)


Tho*_*ohn 12

这对我有用.

   `sudo apt-get install libjpeg-dev`
Run Code Online (Sandbox Code Playgroud)


Kal*_*Kal 10

brew install zlib
Run Code Online (Sandbox Code Playgroud)

在OS X上不再工作,而是提示安装lzlib.安装没有帮助.

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

xcode-select --install
Run Code Online (Sandbox Code Playgroud)


B-s*_*han 8

这对我来说解决了jpeg和zlib错误:

C:\Windows\system32>pip3 install pillow --global-option="build_e
xt" --global-option="--disable-zlib" --global-option="--disable-jpeg"
Run Code Online (Sandbox Code Playgroud)


Bra*_*bor 6

ValueError: zlib is required unless explicitly disabled using --disable-zlib从7.x到8.y升级了点,解决了这个问题.

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

这可以使用:

pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)