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


165

Я пытаюсь установить подушку (модуль 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

Есть намеки, как с этим бороться?

Ответы:


325

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

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

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

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

Чтобы использовать колеса, вам нужно иметь версию 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

Убунту 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

Федора 20 эквивалент libjpeg8-devэто 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 года: в Мохаве вышеприведенное не будет работать, и вам нужно выполнить следующее, как взято из этого сообщения об ошибке на подушке

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

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

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

brew tap homebrew/dupes
brew install zlib

Или вы можете установить zlibчерез xcode, как показано ниже:

xcode-select --install

Благодаря Фениксу, Паносу Ангелопулу, Нельсонварела, Бенджаминзу и Калу в комментариях

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


2
Просто libjpeg8-devможет быть хорошо.
Матеус Портела

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

6
Я должен был заставить ссылку zlib:brew link zlib --force
nelsonvarela

2
brew install zlibбольше не работает на некоторых компьютерах Mac, решение, xcode-select --installпредставленное ниже, похоже, помогает, пожалуйста, обновите ваше решение, так как оно наиболее полно и является первым решением, которое увидят посетители. Большое вам спасибо за вашу работу!
Бенджаминз

37

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

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

sudo apt-get install libjpeg-dev также работал для Ubuntu 14):
Амир,

34

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

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

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


1
Спасибо, это сработало для меня, хотя мне не нужен был python-devel
Dustfinger - Восстановить Монику

1
У меня тоже сработало, просто нужно было установить пакет libjpeg-turbo-devel!
Кейси

Работал на CentOS 7 как шарм!
Raptor

Этот python-devel не требовался на машине amazon linux yum. Я думаю, что последний libjpeg-turbo-devel был отсутствующим пакетом.
Neeraj Gupta

12

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

pip install --upgrade pip

работал на меня. Pip install Pillow (если не работает очистка кэша по pip install --upgrade pip) Затем снова запустите Pip install Pillow
Цви Григорий Кайданов

Это также сработало для меня. У меня есть Python 2.6.6 и 3.5.1 на CentOS VM, и работает pip3.5 install --upgrade pip3.5. После этого pip3.5 install pillowработал без проблем и поддерживал целостность установок Python2 и Python3.
Эван


10
brew install zlib

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

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

xcode-select --install

Немного больше объяснений будет гораздо более полезным.
Бенджаминз

9

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

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

1
Мне нужно было установить Pillow в среде, где у меня нет root-доступа - это решение, которое сработало для меня.
Нильк

6

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

Поэтому я постараюсь обновить инструменты прежде всего.

Это можно сделать с помощью:

pip install --upgrade pip



-2

В Debian / Ubuntu вам нужно только: libjpeg62-turbo-dev

Так просто sudo apt install libjpeg62-turbo-dev иpip install pillow

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.