ImportError:无法导入名称 _imaging
我安装了 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 个回答
我在使用Python 3.6时也遇到了同样的错误。升级Pillow这个库解决了我的问题。
sudo python3.6 -m pip install Pillow --upgrade
如果你用的是其他版本的Python,可以把3.6换成你自己的版本号。
你用的Pillow版本是什么?
Pillow版本2.1.0及以上不再支持 import _imaging
这个写法。请改用 from PIL.Image import core as _imaging
。这里是官方文档。
如果你在一个操作系统上安装了 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
我也遇到了同样的问题,我是通过下面这个命令来升级这个软件包解决的:
pip install -U Pillow
我也遇到过这个问题。这种情况可能发生在你已经安装了PIL,然后又在上面安装了Pillow。
你可以去到这个路径:/usr/local/lib/python2.7/dist-packages/,把所有名字里带有"PIL"的东西都删掉(包括文件夹)。如果那里的Pillow .egg文件也有的话,干脆把它也删了。然后再重新安装Pillow。
记得把"python2.7"换成你正在使用的Python版本。