【问题标题】:Fail during installation of Pillow (Python module) in Linux在 Linux 中安装 Pillow(Python 模块)时失败
【发布时间】:2016-04-10 11:10:18
【问题描述】:

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

任何提示如何处理它?

【问题讨论】:

    标签: python linux pillow


    【解决方案1】:

    报告了 Pillow here 的错误,这表明从 Pillow 3.0.0 开始,libjpegzlib 现在是 required

    Linux 上 Pillow 的 installation instructions 提供有关如何安装这些软件包的建议。请注意,并非您的机器上可能缺少以下所有软件包(cmets 建议实际上仅缺少 libjpeg8-dev)。

    pip / PyPi (Pillow>3.4.2)

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

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

    pip install --upgrade pip 
    

    一旦pip 升级,pip install 将默认使用平台特定的 Wheel 文件(如果它们可用)。使用以下命令将 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
    

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

    xcode-select --install
    

    感谢 cmets 中的 phoenix、Panos Angelopoulou、nelsonvarela、benjaminz 和 Kal

    这些安装完成后,Pillow 的 pip 安装应该可以正常工作了。

    【讨论】:

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

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

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

    现在枕头的安装成功完成了。

    【讨论】:

    • 感谢它对我有用,虽然我不需要 python-devel
    • 对我也有用,只需要安装 libjpeg-turbo-devel 包!
    • 像魅力一样在 CentOS 7 上工作!
    • amazon linux yum 机器上不需要这个 python-devel。我认为最后一个 libjpeg-turbo-devel 是缺少的包。
    【解决方案3】:

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

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

    【讨论】:

    • sudo apt-get install libjpeg-dev 也适用于 Ubuntu 14):
    【解决方案4】:
    brew install zlib
    

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

    您安装 XCode 命令行工具,应该安装 zlib

    xcode-select --install
    

    【讨论】:

    • 多一点解释会更有帮助。
    【解决方案5】:

    我有 ValueError: zlib is required unless explicitly disabled using --disable-zlib,但将 pip 从 7.x 升级到 8.y 解决了问题。

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

    这可以使用:

    pip install --upgrade pip
    

    【讨论】:

      【解决方案6】:

      替代方案,如果您不想安装 libjpeg:

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

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

      【讨论】:

        【解决方案7】:

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

        pip install --upgrade pip
        

        【讨论】:

        • 为我工作。 Pip install Pillow(如果不工作通过 pip install --upgrade pip 清除缓存)然后再次运行 Pip install Pillow
        • 这也对我有用。我在 CentOS 虚拟机上安装了 Python 2.6.6 和 3.5.1,并运行了 pip3.5 install --upgrade pip3.5。之后,pip3.5 install pillow 运行没有任何问题,并保持了 Python2 和 Python3 安装的完整性。
        【解决方案8】:

        试试

        pip install pillow
        

        如果还是不行,请尝试清除

        cache by pip install --upgrade pip
        

        然后再次运行

        pip install pillow
        

        【讨论】:

          【解决方案9】:

          在 debian / ubuntu 上,您只需要: libjpeg62-turbo-dev

          那么简单的sudo apt install libjpeg62-turbo-devpip install pillow

          【讨论】:

            【解决方案10】:

            这对我有用。

               `sudo apt-get install libjpeg-dev`
            

            【讨论】:

              【解决方案11】:

              这对我解决 jpeg 和 zlib 错误很有用:

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

              【讨论】:

              • 我需要在没有 root 访问权限的环境中安装 Pillow - 这是适合我的解决方案。
              【解决方案12】:

              工作成功:

               sudo apt install libjpeg8-dev zlib1g-dev 
              

              【讨论】:

              • 在 Ubuntu 20.04、Python 3.8.5 上为我工作
              【解决方案13】:

              任何使用 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) 上测试的

              【讨论】:

                猜你喜欢
                • 2020-06-19
                • 2022-12-03
                • 1970-01-01
                • 1970-01-01
                • 2023-03-31
                • 1970-01-01
                • 2012-09-12
                • 1970-01-01
                • 2017-12-10
                相关资源
                最近更新 更多