ImportError:没有名为PIL的模块


207

我在外壳中使用以下命令来安装PIL:

easy_install PIL

然后我运行python,并输入:import PIL。但是我得到这个错误:

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

我从来没有遇到过这样的问题,您怎么看?


是的,它有效。您的建议是什么?
Asma Gheisari 2012年

11
@RikPoggi 此文档页面实际上告诉使用from PIL import Image,这是行不通的。
Janne Karila

2
@Janne仅使用导入图像,PIL开始工作。
Asma Gheisari

此时,我建议easy_install Pillow改为。枕头是PIL的叉,其具有更好的包装和支持Python 3.
伦纳特Regebro

1
您可以将接受的答案更改为推荐枕头的答案吗?正如@LennartRegebro所说,此软件包长期有效。
约西亚·约德

Answers:


131

在某些PIL安装中,您必须执行

import Image

而不是import PIL(实际上并非总是以这种方式导入PIL)。由于import Image对您有用,因此实际上您已经安装了PIL。

为库和Python模块使用不同的名称是不寻常的,但这是为PIL(某些版本)选择的。

您可以从官方教程中获得有关如何使用此模块的更多信息。

PS:实际上,在某些安装上import PIL 确实可以工作,这增加了混乱。这可以通过@JanneKarila发现的文档中示例以及MacPorts PIL软件包的某些最新版本(1.1.7)加以确认。


140
pip install image志明的回答对我有用。
Jim Schubert

9
是的,@ JimSchubert说了。pip install image@zhimmingwang工作对我来说太
拉斐尔·鲁伊斯·穆尼奥斯

5
但是,image不是 PIL(如问题),这是一个不同的模块。参考:github.com/francescortiz/image。我在想什么吗?
埃里克·O·勒比戈特

2
您应该检查pip安装的Python解释器。pip -V告诉您它的安装位置。在Unix下,which python告诉您python命令的位置。两者应该足够匹配。或者,更好的方法是:python -c 'import sys; print sys.path'告诉您python命令在何处查找模块(print(sys.path)对于Python 3,为)。
Eric O Lebigot

1
@EricOLebigot您的解决方案似乎没有得到应有的重视,您的建议完美地解决了我的问题,并阻止我下载任何其他软件包
Scott Anderson,

280

在外壳中,运行:

pip install Pillow

注意:已弃用PIL,后继枕头


7
真?image不是问题的PIL模块,它是不是“Django应用程序”(恰好是基于对PIL)。参考:github.com/francescortiz/image
Eric O Lebigot

8
为什么会有投票?image可能是有用的库,但与问题无关。
gwg

2
pip install image为我工作。感谢duckduckgo缓存保留了预编辑答案!
Zahra

这种方法对我有帮助。
杨永Bra

我在其他地方看过枕头,在这里枕头。 cmd不区分大小写,但是编写此代码的首选方式是什么?
约西亚·约德

53

另一方面,我强烈建议您使用与PIL向后兼容并且可以更好地维护/在较新的系统上使用的Pillow

安装后即可

import PIL 

要么

from PIL import Image

等等..


没有其他答案可以解决我遇到的问题,但是这个答案可以。
MaxJ

49

首先安装枕头

pip install Pillow

或如下

c:\Python35>python -m pip install Pillow

然后在python代码中,您可以调用

from PIL import Image

“ Pillow是PIL(Python映像库)的一个分支,不再维护。但是,为了保持向后兼容性,将使用旧的模块名称。” 从枕头安装,但“没有模块命名为枕头”-python2.7-Windows 7-python -m安装枕头


5
我已经满足了需求,但问题仍然存在
Saurabh Chandra Patel

21

有时我会在python中运行Unitest时遇到此类错误。解决方案是在虚拟环境中卸载并安装相同的软件包。

使用此命令:

pip uninstall PIL

pip install  PIL 

如果由于任何原因出现错误,请在命令开头添加sudo,然后按Enter键输入密码。


2
这对我也有用。考虑到人们可能会使用其他间接使用PIL的Python脚本,因此更改Import语句并非总是一种选择。
PropellerHead

这对我不起作用,找不到名为PIL(或pil)的存储库。但是我运行了“ pip install Pillow”,它确实起作用。我的理解是枕头是PIL的一个分支。
Seb Charrot 2014年

@TeeBasins枕头是Alex Clark和Contributors的“友好PIL叉子”。
罗卡蒙德

1
我收到“找不到满足PIL要求的版本(来自版本
:)

20

这在Ubuntu 16.04上对我有用:

sudo apt-get install python-imaging

经过大约半小时的搜索,我在Wikibooks上找到了它。


3
在Ubuntu 16.04之前曾问过此问题,但我在Ubunt 16.04中遇到了此问题,并根据您的建议进行了修复。
foool

很高兴我能帮助你!:D
grooveplex

这是我在带有OLED屏幕显示python输出的RPI上遇到的问题
Ryan Ellis,

10

我用了:

pip install Pillow 

和pip在Lib \ site-packages中安装了PIL。当我将PIL移至Lib时,一切正常。我在Windows 10上。


9

在Windows 10上,我设法达到了:

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

之后在python中(在我的情况下是python 3.7),这很好用...

import PIL
from PIL import image

将Windows 7升级到Windows 10后,我的python程序无法正常工作,但此方法解决了它。谢谢!
user1785594 '19

8

您必须使用python软件包安装Image和pillow。

类型

python -m pip install image 

或运行命令提示符(在Windows中),然后导航到scripts文件夹

cd C:\Python27\Scripts

然后在命令下面运行

pip install image


6

在Windows上,尝试检查PIL库位置的路径。在我的系统上,我注意到路径是

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

pil文件夹重命名为后PIL,我可以加载PIL模块。


我也收到相同的导入错误。我已经使用easy_install安装了PIL。在站点软件包中,它以“ PIL-1.1.7-py2.7-win32.egg”名称安装在目录中。根据您的建议,我已将目录名称更改为PIL,并且它起作用了。感谢您的帮助@Komla。
shashaDenovo 2014年

5

您将需要使用python软件包安装Image和pillow。放心,命令行将为您处理一切。

击中

python -m pip安装映像


4

而不是PIL使用枕头它有效

easy_install Pillow

要么

pip install Pillow


1

我使用conda-forge安装了枕头版本5,这似乎对我有用:

conda install --channel conda-forge pillow=5

普通的conda安装枕头对我不起作用。


0

导入PIL并进一步导入ImageTk和Image模块时,我遇到了相同的问题。我也尝试直接通过pip安装PIL。但无法成功。由于介于两者之间,因此已建议不要使用PIL,因此,尝试仅通过点子安装枕头。枕头已成功安装,此外,PIL软件包位于以下路径中:python27 / Lib / site-packages /。

现在可以导入Image和ImageTk。


0

我最近安装了Leap。我尝试了openshot,但没有开始。于是来到这里,发现了一个建议从终端开始,看看是否有任何错误。

我的错误是error missing mlt。所以我python-mlt从Yast 安装了模块并导入了它,尝试启动,但是下一个openshot说missing pil.

我按照枕头建议安装,因为Yast找不到任何pil和导入的pil。没关系,但没有开始显示Error missing goocanvas

我安装goocanvas了Yast,用python导入了它,然后Openshot启动了!

随着大量的终端这样的错误的missing Vimeoclient和大量的attributeerrors。好吧,看看是否有任何影响。


0

我遇到了同样的问题,我通过检查pip(pip3 --version)是什么版本来解决了这个问题,然后意识到我输入的python<uncorrect version> filename.py不是python<correct version> filename.py


-13

您可能缺少构建pil的python标头。如果您使用的是ubuntu或类似功能,它将类似于

apt-get install python-dev

您使用的是哪种架构,如果使用64位,则将遭受重创。使用32位版本并从此处
Crankyadmin 2012年

它是32位,我已经安装了好几次了,但是这次我遇到了这个问题
Asma Gheisari 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.