ImportError: nenhum módulo chamado PIL

207

Eu uso este comando no shell para instalar o PIL:

easy_install PIL

então eu executar pythone digite o seguinte: import PIL. Mas eu recebo este erro:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named PIL

Eu nunca tive esse problema, o que você acha?

Asma Gheisari
fonte
Sim, funciona. Qual é a sua sugestão?
Asma Gheisari
11
@RikPoggi Esta página de documentação diz para usar from PIL import Image, o que não funciona.
Janne Karila
2
@ Janne apenas use Import Image, e o PIL começa a funcionar.
Asma Gheisari
Neste momento, eu recomendo easy_install Pillow. Pillow é um fork do PIL que tem melhor embalagem e suporta Python 3.
Lennart Regebro
1
Você pode alterar a resposta aceita para uma que recomenda o travesseiro? Como o @LennartRegebro disse, este pacote é melhor a longo prazo.
Josiah Yoder

Respostas:

131

Em algumas instalações do PIL, você deve fazer

import Image

em vez de import PIL(o PIL nem sempre é importado dessa maneira). Como import Imagefunciona para você, isso significa que você realmente instalou o PIL.

Ter um nome diferente para a biblioteca e o módulo Python é incomum, mas foi o que foi escolhido para (algumas versões do) PIL.

Você pode obter mais informações sobre como usar este módulo no tutorial oficial .

PS : Na verdade, em algumas instalações, import PIL faz o trabalho, o que aumenta a confusão. Isso é confirmado por um exemplo da documentação , como @JanneKarila descobriu, e também por algumas versões mais recentes do pacote MacPorts PIL (1.1.7).

Eric O Lebigot
fonte
141
pip install imageda resposta de Zhiming funcionou para mim.
21715 Jim Schubert
9
Sim, @JimSchubert disse isso. pip install imagede @zhimmingwangtrabalhou para mim também
Rafael Ruiz Muñoz
5
Mas nãoimage é PIL (como na pergunta), é um módulo diferente. Referência: github.com/francescortiz/image . Estou faltando alguma coisa, aqui?
Eric O Lebigot
2
Você deve verificar se suas pipinstalações para o interpretador python que você está usando. pip -Vinforma onde ele é instalado. No Unix, which pythoninforma onde está o seu pythoncomando. Os dois devem combinar bem o suficiente. Ou melhor: python -c 'import sys; print sys.path'dirá onde seu pythoncomando procura por módulos ( print(sys.path), para Python 3).
Eric O Lebigot
1
@EricOLebigot Yours é uma solução aparentemente subestimada, sua sugestão resolveu meu problema perfeitamente e me impediu de baixar outros pacotes #
Scott Anderson
281

No shell, execute:

pip install Pillow

Atenção: O PIL está obsoleto e o travesseiro é o sucessor.

zhiming wang
fonte
7
Realmente? nãoimage é o módulo PIL da questão, é um "aplicativo Django" (que é baseado no PIL). Referência: github.com/francescortiz/image .
Eric O Lebigot
8
Por que isso tem votos positivos? imagepode ser uma biblioteca útil, mas não está relacionada à questão.
gwg 21/03
2
pip install imagetrabalhou para mim. graças ao duckduckgo cache por manter a resposta pré-edição!
Zahra
Este método é útil para mim.
Bravo Yeung
Já vi outros lugares, travesseiro aqui. cmdnão diferencia maiúsculas de minúsculas, mas qual é a maneira preferida de escrever isso?
Josiah Yoder
53

Em uma nota diferente, eu recomendo o uso do Pillow, que é compatível com o PIL e é melhor mantido / funcionará em sistemas mais recentes.

Quando instalado, você pode fazer

import PIL 

ou

from PIL import Image

etc ..

Damian
fonte
Nenhuma das outras respostas resolveu o problema que eu tinha, mas esta resolveu.
MaxJ
49

Primeiro instale o Pillow com

pip install Pillow

ou da seguinte maneira

c:\Python35>python -m pip install Pillow

Então, no código python, você pode chamar

from PIL import Image

"Pillow é um fork do PIL, a Python Imaging Library, que não é mais mantida. No entanto, para manter a compatibilidade com versões anteriores, o nome do módulo antigo é usado." Do travesseiro instalado, mas "nenhum módulo chamado travesseiro" - python2.7 - Windows 7 - python -m install pillow

Orhan Celik
fonte
5
Estou recebendo exigência já satisfeito, mas ainda o mesmo problema
Saurabh Patel Chandra
21

Às vezes, recebo esse tipo de erro ao executar um Unitest em python. A solução é desinstalar e instalar o mesmo pacote no seu ambiente virtual.

Usando estes comandos:

pip uninstall PIL

e

pip install  PIL 

Se, por qualquer motivo, você receber um erro, adicione sudo no início do comando e, depois de pressionar, digite sua senha.

Fernando Munoz
fonte
2
Isso também funciona para mim. Considere que se pode usar outros scripts Python que indiretamente usam PIL, alterar a instrução Import nem sempre é uma opção.
PropellerHead
Isso não funcionou para mim, não foi possível encontrar um repositório chamado PIL (ou pil). No entanto, eu corri "pip install Pillow", que funcionou. Meu entendimento é que Pillow é um ramo da PIL.
Seb Charrot
O @TeeBasins Pillow é o “amigável garfo PIL” de Alex Clark e colaboradores.
JC Rocamonde
1
Recebo "Não foi possível encontrar uma versão que atenda ao requisito PIL (das versões
:)
20

Isso funcionou para mim no Ubuntu 16.04:

sudo apt-get install python-imaging

Encontrei isso no Wikilivros depois de pesquisar por cerca de meia hora.

grooveplex
fonte
3
Esta pergunta foi feita antes do Ubuntu 16.04, mas eu encontrei este problema no Ubunt 16.04 e o corrigi com sua sugestão.
foool
Ainda bem que pude ajudar! : D
grooveplex
Este foi o meu problema em um RPI com uma tela OLED exibindo saída python
Ryan Ellis
10

Eu usei:

pip install Pillow 

e o pip instalou o PIL no Lib \ site-packages. Quando mudei o PIL para Lib, tudo funcionou bem. Estou no Windows 10.

cromastro
fonte
9

No Windows 10, consegui chegar lá com:

cd "C:\Users\<your username>\AppData\Local\Programs\Python\Python37-32" 
python -m pip install --upgrade pip     <-- upgrading from 10.something to 19.2.2.
pip3 uninstall pillow
pip3 uninstall PIL
pip3 install image

após o que em python (python 3.7 no meu caso) isso funciona bem ...

import PIL
from PIL import image
andrew pate
fonte
Depois de atualizar o Windows 7 para o Windows 10, meu programa python não funcionou, mas esse método resolveu. Obrigado!
user1785594
8

você precisa instalar Image e pillow com seu pacote python.

tipo

python -m pip install image 

ou execute o prompt de comando (no Windows) e navegue até a pasta de scripts

cd C:\Python27\Scripts

então execute o comando abaixo

pip install image
azdoud
fonte
8

se você usa anaconda:

conda install pillow
Conor Cosnett
fonte
1
Eu fiz isso, ele ainda não poderia PIL importação
john ktejik
@johnktejik que versão do Python e do Anaconda você está usando?
Conor Cosnett
6

No Windows, tente verificar o caminho para o local da biblioteca PIL. No meu sistema, notei que o caminho era

\Python26\Lib\site-packages\pil instead of \Python26\Lib\site-packages\PIL  

depois de renomear a pilpasta para PIL, consegui carregar o módulo PIL.

Komla
fonte
Eu também estava recebendo o mesmo erro de importação. Eu instalei o PIL usando o easy_install. Nos pacotes de sites, ele foi instalado no diretório com o nome 'PIL-1.1.7-py2.7-win32.egg'. Conforme sua sugestão, mudei o nome do diretório para PIL e funcionou. Obrigado pela sua ajuda @Komla.
ShashaDenovo
5

Você precisará instalar o Image and pillow com seu pacote python. Tenha certeza, a linha de comando cuidará de tudo para você.

Acertar

imagem de instalação do python -m pip

Dipanshu Sehjal
fonte
4

em vez de PIL usar travesseiro funciona

easy_install Pillow

ou

pip install Pillow
Sai Gopi N
fonte
1

Usei o conda-forge para instalar a versão 5 do travesseiro, e isso pareceu funcionar para mim:

conda install --channel conda-forge pillow=5

o travesseiro de instalação normal da conda NÃO funcionou para mim.

Geoff Perrin
fonte
0

Eu tive o mesmo problema ao importar o PIL e importar os módulos ImageTk e Image. Eu também tentei instalar o PIL diretamente através do pip. mas não foi possível obter sucesso. Como no meio, foi sugerido que o PIL foi preterido, portanto, tentou instalar travesseiro apenas através do pip. travesseiro foi instalado com sucesso, além disso, o pacote PIL foi feito no caminho: python27 / Lib / site-packages /.

Agora, o Image e o ImageTk podem ser importados.

Prateek Jain
fonte
0

Eu instalei recentemente o Leap. Tentei o openshot e não foi iniciado. Então, veio aqui e encontrou uma sugestão para começar a partir do Terminal para ver se havia algum erro.

O erro que tive foi error missing mlt. Então eu instalei o python-mltmódulo do Yast e o importei, tentei iniciar, mas o próximo openshot dissemissing pil.

Segui a sugestão de travesseiro para instalar, porque o Yast não conseguiu encontrar nenhum pil e um pil importado. Isso deu certo, mas não começou e mostrouError missing goocanvas .

Eu instalei goocanvas com o Yast, importei em python e o Openshot foi acionado !!

Com muitos erros no terminal missing Vimeocliente muitos attributeerrors. Bem, vamos ver se tem alguma influência trabalhando com ele.

Johan
fonte
0

Eu tive o mesmo problema e o corrigi, verificando qual é a versão pip ( pip3 --version) e percebendo que estou digitando em python<uncorrect version> filename.pyvez depython<correct version> filename.py

Ori Barmatz
fonte
-13

Você provavelmente está perdendo os cabeçalhos python para criar o pil. Se você estiver usando o ubuntu ou algo semelhante, será algo como

apt-get install python-dev
Crankyadmin
fonte
Que arquitetura você está usando, se tiver 64 bits, está em um mundo de mágoas. Use uma versão de 32 bits e usar a versão pré-compilada não oficial de aqui
Crankyadmin
É de 32 bits, eu instalei isso por várias vezes, mas isso desta vez eu tenho este problema
Asma Gheisari