Error durante la instalación de Pillow (módulo Python) en Linux

165

Estoy tratando de instalar Pillow (módulo Python) usando pip, pero arroja este error:

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

Entonces, como dice el error, intenté:

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

Pero falla con:

error: option --disable-jpeg not recognized

¿Alguna pista de cómo lidiar con eso?

mchfrnc
fuente

Respuestas:

325

Hay un informe de errores de almohada aquí , lo que indica que libjpegy zlibahora se requiere partir de almohada 3.0.0.

Las instrucciones de instalación de Pillow en Linux dan consejos sobre cómo instalar estos paquetes. Tenga en cuenta que no todos los siguientes paquetes pueden faltar en su máquina (los comentarios sugieren que solo libjpeg8-devfaltan).

pip / PyPi (Pillow> 3.4.2)

Las últimas versiones de Pillow están disponibles en PyPi como ruedas : el nuevo mecanismo de empaquetado estándar para Python. Estos paquetes precompilados incluyen todas las dependencias binarias necesarias para permitir que Pillow se ejecute y se deben usar si desea instalar Pillow usando PyPi

Para usar ruedas, debe tener una versión de pip>=1.4. Si está utilizando una versión anterior ( pip --version) pip de actualización utilizando lo siguiente:

pip install --upgrade pip 

Una vez que pipse actualiza, pip installutilizará archivos de rueda específicos de la plataforma de forma predeterminada si están disponibles. Use el siguiente comando para actualizar Pillow a la última versión disponible en PyPi:

pip install --upgrade pillow

Ubuntu 12.04 LTS o 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

El equivalente de Fedora 20 libjpeg8-deves is libjpeg-devel.

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

Mac OS X (a través de Homebrew)

En Mac OS X con Homebrew, esto se puede solucionar con:

brew install libjpeg zlib

También es posible que deba forzar el enlace zlib usando lo siguiente:

brew link zlib --force

Actualización de abril de 2019: en Mojave, lo anterior no funcionará y debe ejecutar lo siguiente tal como se tomó de este informe de error en Pillow

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

Actualización de julio de 2016: ya no hay una fórmula zlibdisponible en el repositorio principal (Homebrew le pedirá que instale, lzlibque es una biblioteca diferente y no resolverá este problema).

No es una fórmula disponible en el dupes repositorio. Puede tocar este repositorio e instalarlo normalmente:

brew tap homebrew/dupes
brew install zlib

O puede instalar zlibvía en su xcodelugar, de la siguiente manera:

xcode-select --install

Gracias a Phoenix, Panos Angelopoulou, nelsonvarela, benjaminz y Kal en los comentarios

Después de que se instalen, la instalación de pip de Pillow debería funcionar normalmente.

mfitzp
fuente
2
Solo libjpeg8-devpodría estar bien.
Matheus Portela
3
Estaba enfrentando el mismo problema para Mac OS X. Lo resolví ejecutándose brew install libjpeg brew install zlib
Panos Angelopoulos
2
Instale mejor libjpeg-dev - sin '8', luego también descubrió que zlib1g-dev también faltaba. Después: sudo apt-get install libjpeg-dev zlib1g-devla instalación de pip Pillow funcionó en Mint 17.1 (= Ubuntu 14.04 LTS).
Arntg
66
Tuve que forzar el enlace zlib:brew link zlib --force
nelsonvarela
2
brew install zlibya no funciona en algunos Macs, la solución a continuación xcode-select --installparece ser el truco, actualice amablemente su solución, ya que es la más inclusiva y es la primera solución que ven los visitantes. ¡Muchas gracias por tu trabajo!
benjaminz
37

En Raspberry pi II, tuve el mismo problema. Después de intentar lo siguiente, resolví el problema. La solucion es:

sudo apt-get update
sudo apt-get install libjpeg-dev
xjfengck
fuente
sudo apt-get install libjpeg-dev también funcionó para Ubuntu 14):
Amir
34

Gracias @mfitzp. En mi caso (CentOS), estas bibliotecas no están disponibles en el repositorio de yum, pero en realidad la solución fue aún más fácil. Lo que hice:

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

Y ahora la instalación de la almohada termina con éxito.

mchfrnc
fuente
1
Gracias, eso funcionó para mí, aunque no necesitaba el desarrollo de python
Dustfinger - Reinstate Monica
1
También funcionó para mí, ¡solo necesitaba instalar el paquete libjpeg-turbo-devel!
kaycee
¡Trabajé en CentOS 7 como un encanto!
Raptor
Este desarrollo de python no fue necesario en la máquina amazon linux yum. Creo que el último libjpeg-turbo-devel fue el paquete que faltaba.
Neeraj Gupta
12

La solución más rápida es actualizar el pip. Funcionó para mí:

pip install --upgrade pip
Aman Yadav
fuente
trabajó para mi. Pip install Pillow (si no funciona borrar caché por pip install --upgrade pip) Luego ejecutar de nuevo Pip install Pillow
Tzvi Gregory Kaidanov
Esto también funcionó para mí. Tengo Python 2.6.6 y 3.5.1 en una VM CentOS, y ejecuté pip3.5 install --upgrade pip3.5. Después de eso, se pip3.5 install pillowejecutó sin problemas y mantuvo la integridad de las instalaciones de Python2 y Python3.
Evan
12

Esto funcionó para mí.

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

en OS X ya no funciona y en su lugar solicita la instalación lzlib. Instalar eso no ayuda.

En su lugar, instale las herramientas de línea de comandos XCode y eso debería instalar zlib

xcode-select --install
Kal
fuente
Un poco más de explicación sería mucho más útil.
benjaminz
9

Esto funcionó para mí para resolver el error jpeg y zlib:

C:\Windows\system32>pip3 install pillow --global-option="build_e
xt" --global-option="--disable-zlib" --global-option="--disable-jpeg"
B-shan
fuente
1
Necesitaba instalar Pillow en un entorno donde no tengo acceso a la raíz: esta es la solución que funcionó para mí.
Nielk
6

Tuve el ValueError: zlib is required unless explicitly disabled using --disable-zlibpip de actualización de 7.xa 8.y resolvió el problema.

Así que intentaría actualizar las herramientas antes que nada.

Eso se puede hacer usando:

pip install --upgrade pip
Brambor
fuente
0

Tratar

pip install pillow

Si no funciona, intente borrar el

cache by pip install --upgrade pip

Luego corre de nuevo

pip install pillow
Tzvi Gregory Kaidanov
fuente
-2

En debian / ubuntu solo necesita: libjpeg62-turbo-dev

Entonces un simple sudo apt install libjpeg62-turbo-dev y unpip install pillow

Dean Brown
fuente