Gagal saat memasang Pillow (modul Python) di Linux

165

Saya mencoba untuk menginstal Pillow (modul Python) menggunakan pip, tetapi melempar kesalahan ini:

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

Jadi seperti yang dikatakan kesalahan, saya mencoba:

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

Tetapi gagal dengan:

error: option --disable-jpeg not recognized

Adakah petunjuk bagaimana menghadapinya?

mchfrnc
sumber

Jawaban:

325

Ada bug yang dilaporkan untuk Pillow di sini , yang menunjukkan bahwa libjpegdan zlibsekarang diperlukan pada Pillow 3.0.0.

Petunjuk instalasi untuk Pillow on Linux memberi saran tentang cara menginstal paket-paket ini. Perhatikan bahwa tidak semua paket berikut mungkin hilang pada mesin Anda (komentar menyarankan hanya libjpeg8-devbenar-benar hilang).

pip / PyPi (Bantal> 3.4.2)

The rilis terbaru dari bantal yang tersedia di PyPI sebagai roda - mekanisme kemasan standar baru untuk Python. Paket-paket prebuilt ini mencakup semua dependensi biner yang diperlukan untuk memungkinkan Bantal dijalankan dan harus digunakan jika Anda ingin menginstal Bantal menggunakan PyPi

Untuk menggunakan roda, Anda harus memiliki versi pip>=1.4. Jika Anda menggunakan versi sebelumnya ( pip --version) perbarui pip menggunakan yang berikut:

pip install --upgrade pip 

Setelah pipditingkatkan, pip installakan menggunakan file roda khusus platform secara default jika tersedia. Gunakan perintah berikut untuk meningkatkan Bantal ke versi terbaru yang tersedia di PyPi:

pip install --upgrade pillow

Ubuntu 12,04 LTS atau 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

Setara dengan Fedora 20 libjpeg8-devadalah libjpeg-devel.

sudo yum install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel

Mac OS X (via Homebrew)

Pada Mac OS X dengan Homebrew ini dapat diperbaiki menggunakan:

brew install libjpeg zlib

Anda juga mungkin perlu memaksa-tautan zlib menggunakan yang berikut ini:

brew link zlib --force

Pembaruan April 2019: Di Mojave hal di atas tidak akan berfungsi dan Anda harus menjalankan yang berikut dari laporan bug di Bantal ini

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

Update Juli 2016: Tidak ada lagi rumus untuk zlibtersedia dalam repositori utama (Homebrew akan meminta Anda untuk menginstal lzlibyang merupakan perpustakaan yang berbeda dan tidak akan memecahkan masalah ini).

Ada adalah formula yang tersedia di dupes repositori. Anda dapat mengetuk repositori ini, dan menginstal seperti biasa:

brew tap homebrew/dupes
brew install zlib

Atau Anda dapat menginstal zlibvia xcode, sebagai berikut:

xcode-select --install

Berkat phoenix, Panos Angelopoulou, nelsonvarela, benjaminz dan Kal dalam komentar

Setelah ini dipasang, pemasangan pipa Bantal harus bekerja secara normal.

mfitzp
sumber
2
Hanya libjpeg8-devmungkin baik-baik saja.
Matheus Portela
3
Saya menghadapi masalah yang sama untuk Mac OS X. Saya menyelesaikannya mengeksekusi brew install libjpeg brew install zlib
Panos Angelopoulos
2
Lebih baik menginstal libjpeg-dev - tanpa '8', kemudian juga menemukan bahwa zlib1g-dev juga hilang. Setelah: sudo apt-get install libjpeg-dev zlib1g-devpemasangan Bantal pip berfungsi pada Mint 17.1 (= Ubuntu 14.04 LTS).
arntg
6
Saya harus memaksa tautan zlib:brew link zlib --force
nelsonvarela
2
brew install zlibtidak lagi berfungsi pada beberapa Mac, solusi di bawah ini xcode-select --installsepertinya melakukan triknya, mohon perbarui solusi Anda karena ini adalah yang paling inklusif dan merupakan solusi pertama yang dilihat pengunjung. Terima kasih banyak untuk pekerjaan kamu!
benjaminz
37

Pada Raspberry pi II, saya memiliki masalah yang sama. Setelah mencoba yang berikut, saya memecahkan masalah. Solusinya adalah:

sudo apt-get update
sudo apt-get install libjpeg-dev
xjfengck
sumber
sudo apt-get install libjpeg-dev juga berfungsi untuk Ubuntu 14):
Amir
34

@ Mfitzp terima kasih Dalam kasus saya (CentOS) lib ini tidak tersedia di yum repo, tetapi sebenarnya solusinya bahkan lebih mudah. Apa yang saya lakukan:

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

Dan sekarang pemasangan bantal selesai dengan sukses.

mchfrnc
sumber
1
Terima kasih yang bekerja untuk saya walaupun saya tidak memerlukan python-devel
Dustfinger - Reinstate Monica
1
Bekerja untuk saya juga, hanya perlu menginstal paket libjpeg-turbo-devel!
kaycee
Bekerja pada CentOS 7 seperti pesona!
Raptor
Python-devel ini tidak diperlukan pada mesin yum amazon linux. Saya pikir yang terakhir libjpeg-turbo-devel adalah paket yang hilang.
Neeraj Gupta
12

Perbaikan tercepat adalah meningkatkan pip. Apakah bekerja untuk saya:

pip install --upgrade pip
Aman Yadav
sumber
bekerja untukku. Pip install Pillow (jika tidak bekerja hapus cache dengan pip install --upgrade pip) Kemudian jalankan lagi Pip install Pillow
Tzvi Gregory Kaidanov
Ini juga bekerja untuk saya. Saya memiliki Python 2.6.6 dan 3.5.1 pada CentOS VM, dan berlari pip3.5 install --upgrade pip3.5. Setelah itu, pip3.5 install pillowjalankan tanpa masalah, dan menjaga integritas instalasi Python2 dan Python3.
Evan
12

Ini berhasil untuk saya.

   `sudo apt-get install libjpeg-dev`
Thomas John
sumber
10
brew install zlib

pada OS X tidak berfungsi lagi dan malah diminta untuk menginstal lzlib. Memasang itu tidak membantu.

Sebaliknya Anda menginstal alat baris perintah XCode dan yang harus menginstal zlib

xcode-select --install
Kal
sumber
Penjelasan lebih sedikit akan jauh lebih bermanfaat.
benjaminz
9

Ini berhasil bagi saya untuk memecahkan kesalahan jpeg dan zlib:

C:\Windows\system32>pip3 install pillow --global-option="build_e
xt" --global-option="--disable-zlib" --global-option="--disable-jpeg"
B-shan
sumber
1
Saya perlu memasang Bantal di lingkungan di mana saya tidak memiliki akses root - ini adalah solusi yang berfungsi untuk saya.
Nielk
6

Saya mengalami ValueError: zlib is required unless explicitly disabled using --disable-zlibtetapi meningkatkan pip dari 7.x ke 8.y memecahkan masalah.

Jadi saya akan mencoba memperbarui alat sebelum yang lainnya.

Itu bisa dilakukan dengan menggunakan:

pip install --upgrade pip
Brambor
sumber
0

Mencoba

pip install pillow

Jika tidak berhasil, coba hapus

cache by pip install --upgrade pip

Kemudian jalankan lagi

pip install pillow
Tzvi Gregory Kaidanov
sumber
-2

Di debian / ubuntu Anda hanya perlu: libjpeg62-turbo-dev

Jadi yang sederhana sudo apt install libjpeg62-turbo-dev dan apip install pillow

Dean Brown
sumber