使用Pillow 8.3.2与Python3.9.4时出现cannot import name '_imaging' from 'PIL'报错如何解决
报错原因与对应解决方案
该ImportError本质是Pillow的核心C扩展模块_imaging加载失败导致,属于环境运行层面问题,和项目代码本身无关。未修改代码却触发报错、后续自动恢复的常见原因如下:
- 系统路径或权限临时异常:Windows系统下,杀毒软件扫描、系统后台更新、环境管理工具后台运行都可能临时篡改系统PATH变量,或者限制项目依赖目录的读取权限,导致
_imaging.pyd扩展文件无法被正常识别,干扰消失后问题就会自动恢复 - 依赖文件被临时锁定:如果关机前有IDE索引扫描、杀毒软件全盘查杀类进程锁定了
vendor\PIL目录下的_imaging.pyd文件,开机后进程未及时释放锁时运行项目就会触发加载失败,锁被系统自动释放后运行就恢复正常 - 解释器路径临时错位:如果设备上存在多个Python版本,开机后默认解释器被临时切换,而对应版本没有适配Pillow 8.3.2的预编译扩展,后续解释器路径恢复后问题就会自动消失
如果后续再遇到同类问题,可按以下步骤快速排查:
- 先卸载重装对应版本Pillow,强制刷新扩展文件:
pip uninstall pillow pip install pillow==8.3.2 - 检查项目
vendor目录权限,确认当前Windows用户对该目录有可读可执行权限,可暂时关闭杀毒软件对项目目录的扫描验证 - 执行
where python确认当前使用的解释器路径和开发时的路径一致,排除版本错位问题
内容的提问来源于stack exchange,提问作者maia
相关产品推荐
相关产品推荐

