Не вдалося встановити Pillow (модуль Python) в Linux


165

Я намагаюся встановити 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

Будь-які підказки, як з цим боротися?

Відповіді:


324

Існує помилка повідомлялося Pillow тут , що вказує на те, що libjpegі zlibв даний час потрібно в якості подушки 3.0.0.

В інструкції по установці для подушки на Linux дають поради про те , як встановити ці пакети. Зауважте, що не всі наступні пакети можуть бути відсутні у Вашій машині (коментарі припускають лише це)libjpeg8-dev насправді відсутня).

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

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

Щоб використовувати колеса, вам потрібно мати версію pip>=1.4. Якщо ви використовуєте більш ранню версію ( pip --version) файлу оновлення, використовуючи наступне:

pip install --upgrade pip 

Як тільки pipбуде оновлено, pip installза замовчуванням будуть використані файли колеса за замовчуванням, якщо вони доступні. Використовуйте таку команду, щоб оновити Подушку до останньої версії, доступної на 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

Еквівалент Fedora 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 року: У Mojave вищезгадане не працюватиме, і вам потрібно виконати наступне, як взяте з цього звіту про помилку на Подушці

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 repo, але насправді рішення було ще простіше. Що я зробив:

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

І зараз установка подушки закінчується успішно.


1
Спасибі , що працював для мене , хоча я не потребував пітон-Devel
Dustfinger - відновимо Моніка

1
Для мене теж працювали, просто потрібно було встановити пакет libjpeg-turbo-devel!
Кейсі

Працював над CentOS 7 як шарм!
Раптор

Цей python-devel не був потрібен на amazon linux yum machine. Я думаю, що останній libjpeg-turbo-devel був відсутнім пакетом.
Неєрай Гупта

12

Найшвидший виправлення - це приниження піп. Чи працював для мене:

pip install --upgrade pip

працював на мене. Pip install Pillow (якщо не працює очищення кешу шляхом pip install - оновлення 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 у середовищі, де я не маю доступу до кореня - це рішення, яке працювало для мене.
Нільк

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.