ImportError:无法导入名称 _imaging

88 投票
16 回答
165843 浏览
提问于 2025-04-18 17:29

我安装了 Pillow,然后我想做这个:

from PIL import Image

但是我遇到了以下错误:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 61, in <module>
ImportError: cannot import name _imaging

不过,如果我把这些单独导入,就没问题了,也就是说:

import _imaging
import Image

你知道可能是什么问题吗?

16 个回答

4

我在使用Python 3.6时也遇到了同样的错误。升级Pillow这个库解决了我的问题。

sudo python3.6 -m pip install Pillow --upgrade

如果你用的是其他版本的Python,可以把3.6换成你自己的版本号。

5

你用的Pillow版本是什么?

在这里输入图片描述

Pillow版本2.1.0及以上不再支持 import _imaging 这个写法。请改用 from PIL.Image import core as _imaging这里是官方文档。

58

如果你在一个操作系统上安装了 Pillow,然后把 site-packages 的内容复制到另一个操作系统上,这种情况也会发生。例如,如果你在创建 AWS Lambda 的部署包时,就会在运行 Lambda 函数时遇到这个错误。如果是这样的话,你需要在 Amazon Linux 的实例上安装 Pillow,然后把安装后的 site-packages 用在你的部署包里。具体的步骤和详细信息可以在这里找到:

http://docs.aws.amazon.com/lambda/latest/dg/with-s3-example-deployment-pkg.html

99

我也遇到了同样的问题,我是通过下面这个命令来升级这个软件包解决的:

pip install -U Pillow
43

我也遇到过这个问题。这种情况可能发生在你已经安装了PIL,然后又在上面安装了Pillow。

你可以去到这个路径:/usr/local/lib/python2.7/dist-packages/,把所有名字里带有"PIL"的东西都删掉(包括文件夹)。如果那里的Pillow .egg文件也有的话,干脆把它也删了。然后再重新安装Pillow。

记得把"python2.7"换成你正在使用的Python版本。

撰写回答