Ошибка при установке Pillow (модуль Python) в Linux

Я пытаюсь установить Pillow (модуль Python) с помощью pip, но он вызывает эту ошибку:

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

Так как ошибка говорит, я пробовал:

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

Но он терпит неудачу:

error: option --disable-jpeg not recognized

Любые подсказки, как с этим бороться?

Ответ 1

Спасибо @mfitzp. В моем случае (CentOS) эти библиотеки недоступны в репозитории yum, но на самом деле решение было еще проще. Что я сделал:

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

И теперь установка подушки завершается успешно.

Ответ 2

Существует ошибка сообщалось Pillow здесь, что указывает на то, что libjpeg и zlib теперь требуется от подушки 3.0.0.

Инструкции по установке Pillow на Linux содержат рекомендации по установке этих пакетов. Обратите внимание, что не все следующие пакеты могут отсутствовать на вашем компьютере (комментарии показывают, что на самом деле отсутствует только libjpeg8-dev).

pip/PyPi (Подушка> 3.4.2)

Последние версии Pillow доступны на PyPi в виде колес - нового стандартного механизма упаковки для Python. Эти готовые пакеты включают все необходимые двоичные зависимости, позволяющие запускать Pillow, и их следует использовать, если вы хотите установить Pillow с использованием PyPi

Чтобы использовать колеса, вам нужно иметь версию pip>=1.4. Если вы используете более раннюю версию (pip --version), обновите pip с помощью следующего:

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)

В Mac OS X с Homebrew это можно исправить с помощью:

brew install libjpeg zlib

Вам также может понадобиться принудительно связать zlib с помощью следующего:

brew link zlib --force

ПРИМЕЧАНИЕ: в Мохаве вышеописанное не будет работать, и вам нужно выполнить следующее, как взято из этого сообщения об ошибке на подушке

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

Благодаря Panos Angelopoulou, Нельсонварела, Феникс в комментариях.

Обновление от 5 июля 2016 года: в текущих версиях Homebrew вышеупомянутое может больше не работать, так как больше нет формулы для zlib доступной в основном репозитории (Homebrew предложит вам установить lzlib которая является другой библиотекой, и не решит эту проблему).

В репозитории dupes доступна формула. Вы можете нажать на этот репозиторий и установить как обычно:

brew tap homebrew/dupes
brew install zlib

Или вместо этого вы можете установить zlib через xcode следующим образом:

xcode-select --install

Благодаря Бенджаминзу в комментариях и ответу Кал ниже

После того, как они установлены, установка подушек должна работать нормально.

Ответ 3

На малине pi II у меня была та же проблема. Попробовав следующее, я решил проблему. Решение:

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

Ответ 4

Самое быстрое исправление - обновить пип. Работал для меня:

pip install --upgrade pip

Ответ 5

Это сработало для меня.

   `sudo apt-get install libjpeg-dev`

Ответ 6

brew install zlib

в OS X больше не работает и вместо этого запрашивает установку lzlib. Установка этого не помогает.

Вместо этого вы устанавливаете инструменты командной строки XCode и устанавливаете zlib

xcode-select --install

Ответ 7

У меня был ValueError: zlib is required unless explicitly disabled using --disable-zlib но обновляющий пипс с 7.x до 8.y разрешил проблему.

Итак, я бы попытался обновить инструменты раньше всего.

Это можно сделать, используя:

pip install --upgrade pip

Ответ 8

Это помогло мне решить ошибку jpeg и zlib:

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

Ответ 10

Пытаться

pip install pillow

Если это не работает, попробуйте очистить

cache by pip install --upgrade pip

Потом опять беги

pip install pillow

Ответ 11

На debian/ubuntu вам нужно только: libjpeg62-турбо-DEV

Итак, простой sudo apt install libjpeg62-turbo-dev и a pip install pillow