使用uvicorn运行FastAPI应用报错No module named 'asgiref.typing'怎么解决
问题根本原因
你当前安装的asgiref==3.4.1版本不包含asgiref.typing模块,这个子模块是asgiref在3.5.0及以上版本才正式加入的。出现这个报错是因为你安装的FastAPI/uvicorn版本过新,依赖高版本asgiref的特性,和你当前环境的低版本asgiref不兼容。
解决步骤
- 首先激活你对应的conda环境,执行如下命令卸载现有低版本asgiref:
conda remove asgiref
- 安装适配的高版本asgiref,建议直接安装3.5.2及以上的稳定版本:
conda install -c conda-forge asgiref>=3.5.2
- 如果你不想升级asgiref,也可以降级FastAPI和uvicorn到兼容3.4.1版本的旧版:
conda install fastapi==0.75.0 uvicorn==0.17.6
- 操作完成后重新启动服务测试即可。
异常排查
如果执行上述操作后仍然报错,执行如下命令确认你启动服务用的Python解释器,和conda环境的Python路径是否一致:
# 查看当前环境Python路径 where python # 查看已安装的asgiref版本 pip show asgiref
如果路径不一致,说明你启动服务时调用了其他环境的Python,切换到对应conda环境的解释器启动即可。
内容的提问来源于stack exchange,提问作者DINA TAKLIT
相关产品推荐
相关产品推荐

