虚拟环境下Django项目装Pillow却无法导入PIL的问题求助
这情况我之前踩过坑!核心原因就是VSCode没正确关联你虚拟环境里的Python解释器——虽然你在虚拟环境里操作,但VSCode可能还在调用系统全局的Python,自然找不到Pillow包。给你几个实测有效的解决步骤:
第一步:手动指定虚拟环境的Python解释器
按下Ctrl+Shift+P打开VSCode命令面板,输入Python: Select Interpreter,在弹出的列表里找到你虚拟环境下的Python执行文件——Windows环境下路径大概是env\Scripts\python.exe,选中它。第二步:重启Python语言服务
同样打开命令面板,输入Python: Restart Language Server,让VSCode重新加载解释器的包信息,这一步很关键,有时候选了解释器不会自动生效。第三步:手动配置settings.json(如果前两步没用)
打开VSCode的设置(Ctrl+,),点击右上角的打开设置(JSON)按钮,添加一行配置:"python.pythonPath": "C:\\Users\\XXXX\\Documents\\webDev\\djangoProjects\\env\\Scripts\\python.exe"注意把路径换成你自己虚拟环境的Python路径,Windows下要把反斜杠写成双反斜杠。
第四步:清理VSCode缓存(极端情况)
如果还是不行,试试删除项目根目录下.vscode文件夹里的配置文件和缓存,然后重新打开项目,再重复前两步。
为什么Django Shell里能正常导入?因为py manage.py shell会自动绑定虚拟环境的Python解释器,是完全隔离的环境,而VSCode默认可能优先调用系统全局Python,才会出现这种“本地能跑、编辑器报错”的矛盾情况。
内容的提问来源于stack exchange,提问作者Zhar

