Como instalo a biblioteca de imagens python (PIL)?

35

Como instalo a biblioteca de imagens python (PIL) no Ubuntu?

Eu tentei fazer

sudo apt-get install python-imaging

mas agora quando eu corro     python selftest.py (um script que recebi de algum lugar no site link ) Eu recebo (entre outras mensagens de aviso):

...
*** JPEG support not installed
*** ZLIB (PNG/ZIP) support not installed
...
*** 1 tests of 57 failed.

De alguma forma eu estraguei o PIL - como conserto isso?

É talvez o PIL bem, mas o "selftest.py" não é o programa certo para verificar se o PIL está instalado corretamente - de que outra forma eu posso saber se o PIL está instalado corretamente ou não?

(Eu estou usando o Ubuntu 12.04 LTS "Precise Pangolin").

(O que eu estou tentando fazer é adicionar um gerador de código de barras 2D a algum código python, e todos os geradores de código de barras 2D que eu encontrei escritos em python pareciam usar o PIL).

    
por David Cary 27.06.2012 / 01:03

7 respostas

24

Algo parecido aconteceu comigo Resolvi assim

sudo apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

E tente instalar por meio de pip install PIL .

Mais sobre o que o pip pode encontrar aqui . Em suma, é uma maneira conveniente (e se tornando um padrão) de instalar bibliotecas python.

se continuar a falhar, pode ser devido ao PIL pesquisar essas bibliotecas em um caminho diferente.

It turns out that the APT installations put the libraries under /usr/lib/x86_64-linux-gnu and PIL will search for them in /usr/lib/. So you have to create symlinks for PIL to see them.

Tente ver se libjpeg e libz libs existem em / usr / lib / x86_64-linux-gnu e crie um link simbólico desta forma

sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 /lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so.6 /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so.62 /usr/lib/

Fonte: link

    
por Hernantz 27.06.2012 / 02:30
30

A solução acima não funcionou para mim no Ubuntu 12.10, pois o libjpeg não estava disponível no repositório.

O que acabou funcionando para mim foi:

sudo apt-get build-dep python-imaging
sudo apt-get install libjpeg62 libjpeg62-dev

Se você receber o erro "Você deve colocar alguns 'fontes' de URIs em seu sources.list", então certifique-se de que seu /etc/apt/sources.list tenha entradas deb-src que correspondam às suas entradas deb.

Então você deve ligar simbolicamente os arquivos da sua localização real no seu servidor para o local onde o PIL os espera.

versão de 32 bits

sudo ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib/libz.so
sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
sudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib/libfreetype.so

versão de 64 bits

sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/libz.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/libfreetype.so

Finalmente, pip install PIL

Sucesso!

Atualização de setembro de 2014

Pillow é um garfo mais moderno do PIL.

#jpeg support
sudo apt-get install libjpeg-dev
#tiff support
sudo apt-get install libtiff-dev
#freetype support
sudo apt-get install libfreetype6-dev
#openjpeg200support (needed to compile from source)
wget http://downloads.sourceforge.net/project/openjpeg.mirror/2.0.1/openjpeg-2.0.1.tar.gz
tar xzvf openjpeg-2.0.1.tar.gz
cd openjpeg-2.0.1/
sudo apt-get install cmake
cmake .
sudo make install
#install pillow
pip install pillow
    
por Nick Woodhams 25.03.2013 / 04:20
13

Eu só quero adicionar, que pip install pil não funciona mais, pelo menos na minha máquina, você tem que fazer

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

    
por Lynob 11.02.2014 / 14:43
4

As respostas acima criam links para bibliotecas x64 em locais x86. Em vez disso, eu baixaria a fonte PIL e depois adicionaria essas linhas em setup.py:

    add_directory(library_dirs, "/usr/lib/x86_64-linux-gnu")
    add_directory(library_dirs, "/lib/x86_64-linux-gnu")

após essas linhas (~ linha 211)

    # standard locations
    add_directory(library_dirs, "/usr/local/lib")
    add_directory(include_dirs, "/usr/local/include")

    add_directory(library_dirs, "/usr/lib")
    add_directory(include_dirs, "/usr/include")

reinstale o PIL. Se você estiver usando pip:

pip uninstall PIL

Em seguida, a partir do diretório de origem, execute:

python setup.py install
    
por Salami 24.06.2013 / 22:33
2

Esta solução funciona para mim no Ubuntu 14.04, pois o libjpeg não estava disponível no repositório.

O que acabou funcionando para mim

sudo apt-get build-dep python-imaging
sudo apt-get install libjpeg62 libjpeg62-dev
    
por sagar soni 03.01.2015 / 14:37
2

Eu precisava instalar o Pillow em um virtualenv no 14.04 (não usando pacotes do sistema).

Para construir o travesseiro do PyPI dentro de um virtualenv (Python 2.7):

$ sudo apt-get build-dep pillow
$ virtualenv venv
$ source venv/bin/activate
(venv)$ pip install pillow

... então você pode importar PIL .

    
por Corey Goldberg 13.03.2015 / 22:54
2

sudo apt-get install python-imaging agora instala Pillow não PIL . Quanto a selftest.py , talvez seja necessário verificar a origem para executá-la. E, claro, você precisa instalar as dependências se quiser que o PIL as suporte, por exemplo,

sudo apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

Para executar uma versão do PIL mais recente do que a incluída no Ubuntu ::

pip install Pillow
    
por aclark 07.02.2015 / 22:39