Instalando o PIL com pip


349

Estou tentando instalar o PIL (Python Imaging Library) usando o comando:

sudo pip install pil

mas recebo a seguinte mensagem:

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

Poderia me ajudar a instalar o PIL ??


Você instalou o Xcode e, em seguida, instalou as ferramentas de linha de comando do Xcode? Parece que você não possui o compilador clang.
Fiver

Respostas:


586
  1. Instale as ferramentas de linha de comando Xcode e Xcode, conforme mencionado.
  2. Use travesseiro, pois o PIL está basicamente morto. Travesseiro é um garfo mantido de PIL.

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

pip install Pillow

Se você possui os dois Pythons instalados e deseja instalar isso no Python3:

python3 -m pip install Pillow

5
Eu tenho um clangerro no OSX Mavericks quando eu tentei isso, mas eu achei que esta resposta ajudou com que: stackoverflow.com/a/22322645/16959
Jason Sperske

34
Embora esta seja uma resposta válida e útil, ela realmente não responde à pergunta. Para aqueles de nós no processo de reabilitar projetos antigos, que podem exigir o preenchimento de uma dependência de PIL, apenas para encontrar a próxima coisa que será interrompida, precisamos na verdade obter a dependência real (e às vezes até obter uma versão específica) que alguém criou um hack).
Namey

3
@Namey A portabilidade do código PIL existente para o Pillow pode ser feita facilmente . Porta PIL para travesseiro . O travesseiro é baseado no código PIL e evoluiu para uma versão melhor, moderna e mais amigável do PIL.
GiriB 15/09

7
@GiriB Obrigado pela atualização. Meu ponto principal foi que geralmente há casos em que você está iniciando o trabalho em algum código de produção herdado em que existem 20 dependências antigas, das quais PIL pode ser uma, e você precisa depurar algo para corrigir o código de produção. Nesse caso, você certamente não deseja escrever portas para código conectado a ~ 10 bibliotecas diferentes em sua compilação de desenvolvedores apenas para começar a depurar o erro de uma linha que está ocorrendo no ambiente de produção. Espero que isso esclareça.
Namey

Estou tentando usar uma biblioteca que usa import Image. Existe uma maneira de obter Pillow para fornecer imagem?
AnnanFay

60

Isso funciona para mim:

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

9
Em plataformas de 64 bits, o caminho vinculado precisa ser diferente - por exemplo, /usr/lib/x86_64-linux-gnu/libfreetype.so. Para uma solução mais independente de arquitetura, crie os links como# ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/
Mark Chackerian

Sempre o mesmo problema para os cabeçalhos de criação de imagens: _imagingft.c: 73: 31: erro fatal: freetype / fterrors.h: esse arquivo ou diretório #include <freetype / fterrors.h>, portanto, você deve instalar a imagem em python através do pip
C24b

Sempre há um problema nos cabeçalhos de tipo livre, como mencionado aqui [ askubuntu.com/questions/507459/… ? SOlution: cd / usr / include ln -s freetype2 freetype
c24b

11
sob ubuntu 14,04 mais uma ligação simbólica é necessário sudo ln -s /usr/include/freetype2 /usr/local/include/freetype
Âkâsha

11
funcionou bem para mim o segredo foi o PIL --allow-não verificado --allow-all-external
eusoubrasileiro

54

É muito simples usando o apt install, use este comando para fazê-lo

sudo apt-get install python-PIL

ou

sudo pip install pillow

ou

sudo easy_install pillow

2
não esqueça de reiniciar o servidor de notebook ipython se você estiver executando um.
shousper

sudo pip instalar travesseiro funcionou para mim. O sudo apt-get install python-PIL não o fez.
Yu Shen

11
Eu achei que fosse caso tão sensível: sudo apt-get install python-PIL => Falha (nenhum pacote encontrado) sudo apt-get install python-pil => Trabalhou
Clarkey252

35

No Mac OS X, use este comando:

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

trabalhou em jessy debian bem !, apenas o necessário para instalar python-dev antemão :)
Agey

11
Eu tive que instalar o libjpeg primeiro: brew install libjpeg
Pierre F

Finalmente, uma solução real. Meu Mac não possui o apt-get: p, e eu quero instalar em um virtualenv de qualquer maneira.
Sudo

use sudo pip install Pillow - como abaixo.
Johndpope 14/06


26

Eu recebi a resposta de uma discussão aqui :

eu tentei

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

e funcionou.


8
Considere usar este: pip install --no-index -f http://effbot.org/downloads/ -U PIL --trusted-host effbot.orgA razão que eu usei este é porque é a URL listada pelo pacote e sobre pypi.python.org/pypi/PIL
Tom Myddeltyn

11
Recebi um aviso para usar HTTPS em vez de HTTP. Depois de alterar a URL, funcionou muito bem.
precisa saber é o seguinte

@ TomMyddeltyn Isso quase funcionou, exceto que recebi um erro de compilador onde ele não consegue encontrar o X11 / Xlib.h
Incomum

@ Incomum Não sei ao certo qual é o problema, desculpe.
Tom Myddeltyn

21

Instalar

pip install Pillow

Em seguida, basta importar no seu arquivo como,

from PIL import Image

Eu estou usando o windows Está funcionando para mim.

NOTA :

Pillow é um substituto funcional para a biblioteca de imagens Python. Para executar seu código compatível com PIL existente com o Pillow, ele precisa ser modificado para importar o módulo Imaging do espaço de nome PIL em vez do espaço de nome global.

ie mudança:

import Image

para:

from PIL import Image

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


Obrigado! Ao ler o nome 'PIL', from PIL import Imagenunca pude adivinhar que o nome desta biblioteca era 'Pillow'. Também estou no Windows e sua solução funcionou para mim.
Marcos Buarque

Pillow é um substituto funcional para a Biblioteca de Imagens Python. Para executar seu código compatível com PIL existente com o Pillow, ele precisa ser modificado para importar o módulo Imaging do espaço de nome PIL em vez do espaço de nome global. Ou seja, alteração: import Imagepara from PIL import Image pypi.org/project/Pillow/2.2.1
Chandan Sharma

Obrigado pelas informações adicionais do bckground!
Marcos Buarque

12

Presumo que você esteja no Mac. Consulte Como instalar o PIL no mac os x 10.7.2 Lion

Se você usar [homebrew] [], poderá instalar o PIL com apenas brew install pil. Pode ser necessário adicionar o diretório de instalação ( $(brew --prefix)/lib/python2.7/site-packages) ao seu PYTHONPATH ou adicionar o local do diretório PIL em um arquivo chamado PIL.pthfile em qualquer um dos diretórios de pacotes de sites, com o conteúdo:

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

(assumindo que brew --prefixé /usr/local).

Como alternativa, você pode simplesmente fazer o download / compilar / instalar o código-fonte:

# 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

Eu executei o acima agora (no OSX 10.7.2, com XCode 4.2.1 e System Python 2.7.1) e ele foi desenvolvido muito bem, embora exista a possibilidade de que algo no meu ambiente não seja o padrão.

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


Enquanto isso explica como instalar pil, ele não faz isso pipcomo o OP tentou inicialmente. Acho o uso abundante da brewweb hoje em dia subótimo. brewinstalará um pouco de sobrecarga, dependendo do que você deseja que ele faça. por isso pipprovavelmente ainda ser a melhor escolha para módulos Python.
Mknaf

11

Hoje em dia, todo mundo usa Pillow, um garfo PIL amigável, sobre PIL.

Ao invés de: sudo pip install pil

Faz: sudo pip install pillow

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

Eu recomendaria contra nunca fazer sudo pip install .... Isso pode acabar com a instalação do Python no sistema, o que pode afetar os aplicativos do sistema. Tente usar ambientes virtuais Anaconda , venv ou Docker.
n1k31t4 18/02

11

Para o Ubuntu, o PIL não está mais funcionando. Eu sempre recebo:

Nenhuma distribuição correspondente encontrada para PIL

Então instale o python-imaging:

sudo apt-get install python-imaging

6

Estou tendo o mesmo problema, mas ele é resolvido com a instalação do python-dev.

Antes de instalar o PIL, execute o seguinte comando:

sudo apt-get install python-dev

Em seguida, instale o PIL:

pip install PIL

10
Isso não funcionou para mim no Ubuntu 14. pip install pilresulta em No distributions at all found for PILeu instalar o python-dev primeiro ou não.
precisa saber é o seguinte

5

Eu tive alguns erros durante a instalação. Apenas no caso de alguém ter isso também. Apesar disso, eu já estava sentado sob o usuário administrador, mas não como 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

Adicionar "sudo" resolveu o problema, com o sudo funcionou:

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

5

Para o CentOS:

yum install python-imaging

5

Eu tentei todas as respostas, mas falhei. Obtenha diretamente a fonte do site oficial e crie o sucesso da instalação.

  1. Acesse o site http://www.pythonware.com/products/pil/#pil117
  2. Clique em "Python Imaging Library 1.1.7 Source Kit" para baixar o código-fonte
  3. tar xf Imaging-1.1.7.tar.gz
  4. cd Imaging-1.1.7
  5. sudo python setup.py install


3

Tente o seguinte:

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

2
Embora essa resposta possa estar correta, adicione algumas explicações. A distribuição da lógica subjacente é mais importante do que apenas fornecer o código, porque ajuda o OP e outros leitores a resolver esses problemas e outros similares.
CodeMouse92

Observe que esse comando expirou para mim. De qualquer forma, ele será descontinuado em algumas semanas. sudo pip install --allow-external --allow-unverified PIL PILtambém pode funcionar por enquanto.
Estatísticas de aprendizado por exemplo

3
--allow-externale --allow-unverifiedambos estão obsoletos. pip install pillowé a resposta correta.
Dorian

11
A resposta que eu postei foi sugerida pelo stderr. Portanto, embora minha resposta esteja desatualizada, não foi no momento em que a escrevi. Além disso, peço desculpas pela minha mensagem direcionada ao JasonMc92 (que foi removida desde então). Meu tom estava fora de linha, mas meu sentimento permanece. Há algo de desagradável em vasculhar a primeira página e copiar / colar sua observação sobre "transmitir lógica subjacente". Talvez você esteja perseguindo crachás, e acho que está bem, mas por uma questão de consistência, deixe um comentário em todas as outras respostas semelhantes a essa pergunta que falham na lógica subjacente.
alfonso 28/01


3
  • Primeiro, você deve executar isso, o sudo apt-get build-dep python-imagingque fornecerá todas as dependências necessárias.

  • Então corra sudo apt-get update && sudo apt-get -y upgrade

  • Seguido por sudo apt-get install python-pip

  • E, finalmente, instale o Pil pip install pillow


2

Pesquise no gerenciador de pacotes antes de usar pip. No Arch linux, você pode obter o PILpacman -S python2-pillow


0

Há outra ferramenta de pacote Python chamada conda. A Conda é preferível (acredito) ao pip, quando existem bibliotecas que precisam instalar o C ++ e outras ligações que não são Python puro. O Conda também inclui o pip em sua instalação, para que você ainda possa usar o pip, mas também obtém os benefícios do conda.

A Conda também instala o IPython , pil e muitas outras bibliotecas por padrão. Eu acho que você vai gostar.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.