Instalar PIL con pip


349

Estoy tratando de instalar PIL (la Biblioteca de imágenes de Python) usando el comando:

sudo pip install pil

pero recibo el siguiente mensaje:

Downloading/unpacking PIL
  You are installing a potentially insecure and unverifiable file. Future versions of pip will default to disallowing insecure files.
  Downloading PIL-1.1.7.tar.gz (506kB): 506kB downloaded
  Running setup.py egg_info for package PIL
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

Installing collected packages: PIL
  Running setup.py install for PIL
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py
    --- using frameworks at /System/Library/Frameworks
    building '_imaging' extension
    clang -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -IlibImaging -I/System/Library/Frameworks/Python.framework/Versions/2.7/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _imaging.c -o build/temp.macosx-10.8-intel-2.7/_imaging.o
    unable to execute clang: No such file or directory
    error: command 'clang' failed with exit status 1
    Complete output from command /usr/bin/python -c "import setuptools;__file__='/private/tmp/pip_build_root/PIL/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-AYrxVD-record/install-record.txt --single-version-externally-managed:
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

running install

running build

.
.
.
.

copying PIL/XVThumbImagePlugin.py -> build/lib.macosx-10.8-intel-2.7

running build_ext

--- using frameworks at /System/Library/Frameworks

building '_imaging' extension

creating build/temp.macosx-10.8-intel-2.7

creating build/temp.macosx-10.8-intel-2.7/libImaging

clang -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -IlibImaging -I/System/Library/Frameworks/Python.framework/Versions/2.7/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _imaging.c -o build/temp.macosx-10.8-intel-2.7/_imaging.o

unable to execute clang: No such file or directory

error: command 'clang' failed with exit status 1

----------------------------------------
Cleaning up

¿Podrías ayudarme a instalar PIL?


¿Has instalado Xcode y luego has instalado las herramientas de línea de comandos de Xcode? Parece que no tienes el compilador clang.
Fiver

Respuestas:


586
  1. Instale Xcode y Xcode Command Line Tools como se mencionó.
  2. Use Pillow en su lugar, ya que PIL está básicamente muerto. La almohada es una bifurcación mantenida de PIL.

https://pypi.python.org/pypi/Pillow/2.2.1

pip install Pillow

Si tiene ambos Pythons instalados y desea instalar esto para Python3:

python3 -m pip install Pillow

55
Recibí un clangerror en OSX Mavericks cuando probé esto, pero descubrí que esta respuesta me ayudó: stackoverflow.com/a/22322645/16959
Jason Sperske

34
Si bien esta es una respuesta válida y útil, realmente no responde la pregunta. Para aquellos de nosotros en el proceso de rehabilitación de proyectos antiguos que pueden requerir llenar una dependencia PIL solo para que podamos encontrar lo siguiente que se romperá, en realidad necesitamos obtener la dependencia real (y a veces incluso necesitamos obtener una versión específica que alguien construyó un truco).
Namey

3
@ Namey Portar el código PIL existente a Pillow se puede hacer fácilmente . Port PIL a Pillow . Pillow se basa en el código PIL y se ha convertido en una versión mejor, moderna y más amigable de PIL.
GiriB

77
@GiriB Gracias por la actualización. Mi punto principal fue que a menudo hay casos en los que está comenzando a trabajar en algún código de producción heredado donde hay 20 dependencias antiguas, de las cuales PIL podría ser una, y necesita depurar algo para corregir el código de producción. En ese caso, seguramente no desea tener que escribir puertos para el código conectado a ~ 10 bibliotecas diferentes en su compilación de desarrollo solo para comenzar a depurar el error de una línea que está ocurriendo en el entorno de producción. Espero que esto aclare.
Nombre

Estoy tratando de usar una biblioteca que usa import Image. ¿Hay alguna manera de hacer que Pillow proporcione imagen?
AnnanFay

60

Esto funciona para mi:

apt-get install python-dev
apt-get install libjpeg-dev
apt-get install libjpeg8-dev
apt-get install libpng3
apt-get install libfreetype6-dev
ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib

pip install PIL  --allow-unverified PIL --allow-all-external

99
En las plataformas de 64 bits, la ruta vinculada debe ser diferente, por ejemplo, /usr/lib/x86_64-linux-gnu/libfreetype.so. Para una solución más independiente de la arquitectura, cree enlaces como# ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/
Mark Chackerian

Siempre el mismo problema para los encabezados de imágenes: _imagingft.c: 73: 31: error fatal: freetype / fterrors.h: No existe tal archivo o directorio #include <freetype / fterrors.h> Por lo tanto, debe instalar python-imaging a través de pip
c24b

¿Siempre hay un problema en los encabezados de tipo libre como se menciona aquí [ askubuntu.com/questions/507459/… ? SOLUCIÓN: cd / usr / include ln -s freetype2 freetype
c24b

1
bajo ubuntu 14.04 1 enlace simbólico más es necesario sudo ln -s /usr/include/freetype2 /usr/local/include/freetype
Akasha

1
funcionó bien para mí, el secreto era el --PIL permitido-no verificado --allow-all-external
eusoubrasileiro

54

Es muy simple usar apt install, use este comando para hacerlo

sudo apt-get install python-PIL

o

sudo pip install pillow

o

sudo easy_install pillow

2
no olvide reiniciar su servidor de notebook ipython si está ejecutando uno.
shousper

sudo pip install pillow me funcionó. sudo apt-get install python-PIL no lo hizo.
Yu Shen

1
Me pareció que distingue entre mayúsculas y minúsculas, así que: sudo apt-get install python-PIL => Falló (no se encontró ningún paquete) sudo apt-get install python-pil =>
Funcionó

35

En Mac OS X, use este comando:

sudo pip install https://effbot.org/media/downloads/Imaging-1.1.7.tar.gz

¡también trabajé en debian jessy !, solo necesitaba instalar python-dev de antemano :)
Agey

1
Primero tuve que instalar libjpeg: brew install libjpeg
Pierre F

Finalmente una solución real. Mi Mac no tiene apt-get: p, y de todos modos quiero instalar en un virtualenv.
sudo

use sudo pip install Pillow, como se muestra a continuación.
johndpope


26

Recibí la respuesta de una discusión aquí :

Lo intenté

pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL

Y funcionó.


8
Considere usar esto: pip install --no-index -f http://effbot.org/downloads/ -U PIL --trusted-host effbot.orgLa razón por la que usé este es porque es la URL que figura en el paquete y en pypi.python.org/pypi/PIL
Tom Myddeltyn

1
Recibí una advertencia para usar HTTPS en lugar de HTTP. Después de cambiar la URL funcionó muy bien.
AnnanFay

@TomMyddeltyn Eso casi funcionó, excepto que recibí un error del compilador donde no puede encontrar X11 / Xlib.h
Poco frecuente

@ Poco común No estoy seguro de cuál es el problema, lo siento.
Tom Myddeltyn

21

Instalar en pc

pip install Pillow

Luego, solo importe en su archivo como,

from PIL import Image

Estoy usando windows Me esta funcionando.

NOTA :

Pillow es un reemplazo funcional para la biblioteca de imágenes de Python. Para ejecutar su código existente compatible con PIL con Pillow, debe modificarse para importar el módulo Imaging desde el espacio de nombres PIL en lugar del espacio de nombres global.

es decir, cambiar:

import Image

a:

from PIL import Image

https://pypi.org/project/Pillow/2.2.1/


¡Gracias! Al leer el nombre 'PIL' en from PIL import Imagenunca pude adivinar que el nombre de esta biblioteca era 'Pillow'. También estoy en Windows y su solución funcionó para mí.
Marcos Buarque

Pillow es un reemplazo funcional para la biblioteca de imágenes de Python. Para ejecutar su código existente compatible con PIL con Pillow, debe modificarse para importar el módulo Imaging desde el espacio de nombres PIL en lugar del espacio de nombres global. Es decir, cambio: import Imagea from PIL import Image pypi.org/project/Pillow/2.2.1
Chandan Sharma

¡Gracias por la información adicional de bckground!
Marcos Buarque

12

Supongo que estás en Mac. Consulte ¿Cómo puedo instalar PIL en Mac OS x 10.7.2 Lion?

Si usa [homebrew] [], puede instalar el PIL con solo brew install pil. Es posible que deba agregar el directorio de instalación ( $(brew --prefix)/lib/python2.7/site-packages) a su PYTHONPATH, o agregar la ubicación del directorio PIL en un archivo llamado PIL.ptharchivo en cualquiera de sus directorios de paquetes de sitio, con el contenido:

/usr/local/lib/python2.7/site-packages/PIL

(suponiendo que brew --prefixes/usr/local ).

Alternativamente, puede descargarlo / construirlo / instalarlo desde la fuente:

# download
curl -O -L http://effbot.org/media/downloads/Imaging-1.1.7.tar.gz
# extract
tar -xzf Imaging-1.1.7.tar.gz
cd Imaging-1.1.7
# build and install
python setup.py build
sudo python setup.py install
# or install it for just you without requiring admin permissions:
# python setup.py install --user

Ejecuté lo anterior justo ahora (en OSX 10.7.2, con XCode 4.2.1 y System Python 2.7.1) y funcionó bien, aunque existe la posibilidad de que algo en mi entorno no sea predeterminado.

[homebrew]: http://mxcl.github.com/homebrew/ "Homebrew"


Si bien esto explica cómo instalar pil, no lo hace pipcomo OP intentó inicialmente. Encuentro el uso abundante de brewla web en estos días subóptimo. brewinstalará bastante sobrecarga dependiendo de lo que quieras que haga. por lo que pip, probablemente seguiría siendo la mejor opción para los módulos de Python.
mknaf

11

En estos días, todos usan Pillow, un tenedor PIL amigable, sobre PIL.

En vez de: sudo pip install pil

Hacer: sudo pip install pillow

$ sudo apt-get install python-imaging
$ sudo -H pip install pillow

Yo recomendaría no hacerlo nunca sudo pip install .... Eso podría terminar interrumpiendo la instalación de Python en su sistema, lo que puede afectar las aplicaciones de su sistema. Intente usar entornos virtuales Anaconda , venv o Docker.
n1k31t4

11

Para Ubuntu, PIL ya no funciona. Siempre obtengo:

No se encontró una distribución coincidente para PIL

Instale python-imaging:

sudo apt-get install python-imaging

6

Tengo el mismo problema, pero se resuelve con la instalación de python-dev.

Antes de instalar PIL, ejecute el siguiente comando:

sudo apt-get install python-dev

Luego instale PIL:

pip install PIL

10
Esto no funcionó para mí en Ubuntu 14. pip install pilResultados No distributions at all found for PIL, ya sea que instale python-dev primero o no.
aliteralmind

5

Tuve algunos errores durante la instalación. Por si alguien también tiene esto. A pesar de eso, ya estaba sentado bajo usuario administrador, pero no root.

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/PIL'

Storing debug log for failure in /Users/wzbozon/Library/Logs/pip.log

Agregar "sudo" resolvió el problema, con sudo funcionó:

~/Documents/mv-server: $ sudo pip install Pillow


5

Intenté todas las respuestas, pero fallé. Obtenga directamente la fuente del sitio oficial y luego construya el éxito de la instalación.

  1. Vaya al sitio http://www.pythonware.com/products/pil/#pil117
  2. Haga clic en "Kit de fuente de Python Imaging Library 1.1.7" para descargar la fuente
  3. tar xf Imaging-1.1.7.tar.gz
  4. cd Imaging-1.1.7
  5. sudo python setup.py install


3

Prueba esto:

sudo pip install PIL --allow-external PIL --allow-unverified PIL

2
Si bien esta respuesta puede ser correcta, agregue alguna explicación. Impartir la lógica subyacente es más importante que simplemente dar el código, porque ayuda al OP y a otros lectores a solucionar este y otros problemas similares.
CodeMouse92

Tenga en cuenta que este comando expiró para mí. De todos modos, quedará en desuso en unas pocas semanas. sudo pip install --allow-external --allow-unverified PIL PILTambién puede funcionar por ahora.
Estadísticas de aprendizaje con el ejemplo del

3
--allow-externaly --allow-unverifiedambos están en desuso. pip install pillowEs la respuesta correcta.
Dorian

1
El stderr me sugirió la respuesta que publiqué. Entonces, aunque mi respuesta ahora está desactualizada, no fue en el momento en que la escribí. Además, pido disculpas por mi mensaje dirigido a JasonMc92 (que desde entonces se ha eliminado). Mi tono estaba fuera de línea, pero mi sentimiento permanece. Hay algo desagradable en pasar la primera página y copiar / pegar su nota sobre "impartir lógica subyacente". Tal vez estás persiguiendo una insignia, y supongo que está bien, pero por razones de coherencia, deja un comentario en todas las otras respuestas similares a esta pregunta que no son lógicas.
alfonso


3
  • Primero debe ejecutar esto, sudo apt-get build-dep python-imagingque le dará todas las dependencias que pueda necesitar.

  • Entonces corre sudo apt-get update && sudo apt-get -y upgrade

  • Seguido por sudo apt-get install python-pip

  • Y luego finalmente instalar Pil pip install pillow


2

Busque en el administrador de paquetes antes de usar pip. En Arch Linux puedes obtener PIL porpacman -S python2-pillow


0

Hay otra herramienta de paquete de Python llamada conda . Conda es preferible (creo) sobre pip cuando hay bibliotecas que necesitan instalar C ++ y otros enlaces que no son Python puro. Conda también incluye pip en su instalación, por lo que aún puede usar pip, pero también obtiene los beneficios de conda.

Conda también instala IPython , pil y muchas otras bibliotecas de forma predeterminada. Creo que te gustará.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.