Mac系统VSCode虚拟环境下Pillow已安装仍报错No module named PIL
问题核心诱因
你遇到的是VSCode编辑器识别的解释器与实际运行代码时调用的解释器不匹配问题:
- 编辑器层面已经读取到venv虚拟环境里的Pillow包信息,所以导入语句没有红波浪报错
- 但运行代码时终端默认调用了系统全局的Python,该环境下没有安装Pillow,所以抛出导入错误
排查方法
在你的代码最开头加入以下两行,运行后查看输出的Python路径:
import sys print(sys.executable)
如果输出的路径不是你创建的venv目录下的bin/python,即可确认是解释器不匹配问题。
解决方案
方案1:终端激活venv后运行代码
- 打开VSCode内置终端,切换到项目根目录
- 执行命令激活虚拟环境:
source 你的虚拟环境文件夹名/bin/activate,激活成功后终端前缀会出现(虚拟环境名)的标识 - 执行
python main.py运行代码即可正常导入PIL
方案2:修改VSCode运行配置,默认调用选中的解释器
- 点击左侧「运行和调试」面板,选择「创建launch.json文件」,选择Python环境
- 将配置文件中的
python字段修改为${command:python.interpreterPath},保存后再运行代码,就会自动调用你当前在VSCode右下角选中的venv解释器
方案3:确认Pillow安装到了正确的环境
如果执行pip list时没有激活venv,那Pillow是被安装到了全局Python中,你需要先激活venv,再执行pip install pillow,将包安装到虚拟环境内。
内容的提问来源于stack exchange,提问作者Rick Segal
相关产品推荐
相关产品推荐

