Win11 VS Code虚拟环境下flask_restful导入报错排查
问题背景
- 运行环境:Windows 11,基于Flask搭建API服务,开发工具为VS Code
- 初始异常:代码中导入Flask-RESTful时,Pylance抛出导入无法解析的报错,对应代码前两行如下:
from flask import Flask from flask_restful import Resource, Api, reqparse
编辑器抛出的报错信息为:
Import "flask_restful" could not be resolved Pylance(reportMissingImports)
已完成排查操作
- 已通过
Ctrl+Shift+P打开命令面板选择项目虚拟环境内的Python解释器;在虚拟环境内执行pip list可查询到已安装Flask 2.1.2、Flask-RESTful 0.3.9,两个包均存放在项目目录的Lib\site-packages路径下;虚拟环境外执行pip list返回结果与虚拟环境内不一致,初步排除全局路径冲突问题。 - 使用
Ctrl + Alt + N快捷键运行代码时,抛出模块找不到的异常,其中Flask导入无异常,仅Flask-RESTful导入失败,报错栈如下:
Traceback (most recent call last): File "c:\Users\<Username>\OneDrive\Documents\PythonProjects\api\api.py", line 3, in <module> from flask_restful import Resource, Api, reqparse ModuleNotFoundError: No module named 'flask_restful'
- 更新pip后在系统命令提示符中直接运行程序可正常执行,但VS Code内仍显示导入报错;后续通过
Ctrl + Shift + P >> Python: Select Interpreter >> Enter interpreter path路径,手动选择项目目录Scripts文件夹下的python.exe后,Pylance编辑器内的报错消失,但VS Code右下角不显示已选中的解释器。 - 该状态下使用
Ctrl + Alt + N运行仍报flask_restful缺失错误,但在终端执行set flask_app=api.py >> flask run可正常启动服务,浏览器可正常输出预设的"Hello, World"测试内容,执行python -m api也可正常运行。
核心疑问
是否可以忽略VS Code输出窗口的报错继续开发?
解答
只要在激活项目虚拟环境的终端中,执行flask run或者python -m api能正常启动服务、接口返回符合预期,完全可以忽略当前VS Code的残留报错继续开发,不会影响实际项目功能。
你现在遇到的所有异常本质上都是VS Code插件配置问题,和你的代码、虚拟环境依赖安装没有关系:
Ctrl+Alt+N运行报模块缺失:这个快捷键是Code Runner插件的默认运行快捷键,该插件默认不会自动同步你选择的Python虚拟环境解释器,会调用系统全局Python环境执行代码,自然找不到你装在虚拟环境里的flask_restful包。如果想让这个快捷键正常运行,可以打开Code Runner插件设置,找到Python执行器配置项,把路径手动指定为你项目虚拟环境Scripts目录下的python.exe即可;嫌配置麻烦的话完全可以不用这个快捷键,直接用VS Code内置终端激活虚拟环境运行代码,稳定性更高。- 选完解释器右下角不显示、偶尔Pylance报导入错误:这是VS Code的Python插件和Pylance的缓存索引问题,遇到的时候按
Ctrl+Shift+P调出命令面板,执行Developer: Reload Window重载窗口,等插件重新加载索引后就会恢复正常。就算偶尔重载后还是有报错提示,只要代码实际运行正常,这些提示不会构成开发阻碍。
内容的提问来源于stack exchange,提问作者tackvector
相关产品推荐
相关产品推荐

