导入uvicorn、fastapi报ModuleNotFoundError错误该如何解决
FastAPI、uvicorn 模块导入报错排查方案
这类报错的核心原因是运行代码/编辑器索引依赖时使用的Python解释器,和你安装fastapi、uvicorn时使用的解释器不属于同一个环境,按以下步骤逐次排查即可:
1. 先修复运行时的ModuleNotFoundError
- 打开你用来运行代码的终端,先确认当前终端绑定的Python解释器路径:
- Mac/Linux系统执行:
which python3 - Windows系统执行:
where python
- Mac/Linux系统执行:
- 不要直接用模糊的
pip/pip3命令装包,用刚才查到的解释器路径强制匹配安装:
比如上一步输出的解释器路径是/Users/xxx/venv/bin/python3,就执行:/Users/xxx/venv/bin/python3 -m pip install fastapi uvicorn - 安装完成后执行
pip list(如果是虚拟环境先激活环境),检查输出列表里是否存在fastapi、uvicorn两个包以及对应的版本号,确认安装到位。
注意:如果你使用venv、conda、poetry、pipenv这类虚拟环境工具,一定要先激活对应项目的虚拟环境再执行安装命令,避免包装到全局环境而虚拟环境读不到。
2. 修复编辑器"import could not be resolved"的红线提示
这个问题100%是编辑器选的Python解释器不对,没有指向你装了依赖的那个环境:
- VSCode用户:按快捷键
Ctrl+Shift+P(Mac系统按Cmd+Shift+P)调出命令面板,搜索Python: Select Interpreter,在下拉列表里选中你刚才安装了fastapi、uvicorn的解释器路径,等待编辑器完成依赖索引后,导入红线会自动消失。 - PyCharm用户:依次打开
Settings -> Project -> Python Interpreter,在解释器下拉菜单里选中对应已装依赖的环境,点击应用等待索引完成即可。
3. 特殊场景排查
如果上面两步做完还是报错,检查以下情况:
- 本地存在多版本Python共存(比如同时装了Python3.9、3.11,系统自带Python和手动安装的Python混存):永远使用
<解释器绝对路径> -m pip install的格式装包,不要直接调用pip,避免包装到其他版本的目录下。 - 之前用
sudo权限执行过pip安装:root用户安装的包普通用户环境默认读不到,不要用sudo装用户级Python依赖,可以加--user参数安装到当前用户目录:python -m pip install --user fastapi uvicorn。 - 项目目录下存在命名冲突:检查你的项目文件夹里有没有自己创建的叫
fastapi.py、uvicorn.py的文件,或者同名文件夹,这类自定义命名会覆盖官方包的导入路径,改成其他名字即可。
内容的提问来源于stack exchange,提问作者Vic
相关产品推荐
相关产品推荐

