VS Code运行Python报错No module named 'en_core_web_sm'(已安装)解决求助
问题排查与解决方法
核心原因
该报错绝大多数场景是VS Code当前使用的Python解释器,和你安装en_core_web_sm包的Python解释器不属于同一个环境,还有小概率是spacy和模型版本不匹配导致的。
分步排查操作
步骤1:确认VS Code当前的Python解释器路径
- 按快捷键
Ctrl+Shift+P(Windows)/Cmd+Shift+P(Mac)唤出命令面板,输入Python: Select Interpreter,查看当前选中的解释器的完整路径,记录下来。
步骤2:核对en_core_web_sm的安装路径
- 打开你平时安装Python包的终端,执行命令:
pip show en_core_web_sm
- 查看输出中的
Location字段,对比该路径是否属于步骤1中记录的解释器的site-packages目录。比如解释器路径为D:\Python38\python.exe,对应的site-packages目录就是D:\Python38\Lib\site-packages,如果二者不匹配,说明包安装到了其他Python环境中。
步骤3:环境不匹配的两种解决方式
- 方式一:回到VS Code的解释器选择页面,切换到你安装了
en_core_web_sm的Python解释器,重新运行代码即可。 - 方式二:用VS Code当前选中的解释器重新安装对应版本的包:
- 打开VS Code内置终端,执行命令确认pip对应环境:
# Windows执行 where pip # Mac/Linux执行 which pip- 确认返回的pip路径和VS Code选中的解释器路径匹配后,执行安装:
pip install en-core-web-sm==2.2.5 # 也可以用spacy官方命令安装 python -m spacy download en_core_web_sm==2.2.5
步骤4:版本兼容问题排查
en_core_web_sm的版本必须和spacy版本完全匹配,2.2.5版本的模型仅支持spacy 2.2.x版本。如果你的spacy是3.x版本,即便包安装成功也会加载失败。- 执行命令查看当前spacy版本:
pip show spacy
- 如果spacy版本不匹配,可以选择降级spacy到2.2.x版本,或者安装对应3.x版本的
en_core_web_sm。
应急解决方案
如果以上操作都无法解决,可以直接指定模型的本地绝对路径加载:
- 用
pip show en_core_web_sm拿到Location路径,拼接上模型目录名en_core_web_sm就是完整的模型路径,比如D:\Python38\Lib\site-packages\en_core_web_sm - 修改代码里的加载语句:
nlp = spacy.load("D:\Python38\Lib\site-packages\en_core_web_sm")
内容的提问来源于stack exchange,提问作者user16974519
相关产品推荐
相关产品推荐

