Jupyter Notebook中from PIL import Image报错无法导入_imaging如何解决
问题原因
- 核心原因是Jupyter Notebook 运行使用的Python内核环境,和PyCharm使用的Python环境不是同一个,PyCharm对应的环境中Pillow安装正常,但Jupyter内核绑定的环境存在Pillow安装损坏、版本不兼容的问题
- 次要原因是Windows用户目录下
AppData\Roaming路径的Python包优先级高于环境安装包,你当前报错触发的就是该路径下损坏的PIL包,该包优先被调用导致导入失败 - 部分情况是因为混用pip、conda安装Pillow,导致同环境下存在多个版本的Pillow文件冲突
解决方案
按照以下步骤依次排查处理:
- 验证环境一致性
分别在PyCharm的终端、报错的Jupyter Notebook单元格中执行以下代码,对比输出的Python路径是否一致:
import sys print(sys.executable)
如果路径不一致,即可确认是环境不匹配问题。
2. 给Jupyter当前内核单独重装Pillow
直接在报错的Jupyter单元格中执行以下命令,确保安装包精准命中当前Jupyter使用的Python环境,避免装到其他无关环境:
!{sys.executable} -m pip install --upgrade --force-reinstall pillow
- 删除损坏的全局PIL包
如果执行完第二步仍然报错,手动删除报错提示中的损坏PIL文件夹:C:\Users\Murali Manohar\AppData\Roaming\Python\Python37\site-packages\PIL,删除后重新执行第二步的重装命令即可。 - 适配conda环境的特殊处理
如果你使用conda管理环境,先完全卸载所有源安装的Pillow,再统一用单个源安装:
- 先执行多次
conda remove pillow和pip uninstall pillow,直到提示包未安装 - 选择单源安装:要么执行
conda install pillow,要么使用第二步的pip命令安装,不要交替使用两个源安装同个包
- 复用PyCharm环境到Jupyter
如果希望Jupyter完全使用PyCharm对应的环境,可将该环境添加为Jupyter内核:
- 先激活PyCharm对应的Python环境
- 执行
pip install ipykernel安装内核依赖 - 执行
python -m ipykernel install --user --name pycharm_env(pycharm_env可替换为你自定义的内核名称) - 重启Jupyter后,右上角内核选择处选中刚添加的自定义内核即可
内容的提问来源于stack exchange,提问作者Murali Manohar S R
相关产品推荐
相关产品推荐

