You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已安装httpx但启动FastAPI报No module named 'httpx'错误

问题原因

出现该问题的核心是uvicorn --reload热重载模式拉起的业务子进程,未使用已安装httpx的虚拟环境Python解释器,子进程的模块搜索路径不包含虚拟环境的site-packages目录,因此无法找到已安装的httpx包,和依赖本身安装成功与否无关。
常见触发条件:

  • 全局环境安装了uvicorn,启动时调用的全局uvicorn未关联当前虚拟环境解释器,热重载子进程默认调用全局Python解释器加载业务代码
  • Python 3.6版本适配的旧版uvicorn存在热重载逻辑bug,无法自动继承当前终端的虚拟环境激活状态
  • 项目根目录下存在命名为httpx.py的文件或httpx命名的文件夹,触发模块搜索优先级冲突,覆盖了第三方httpx包的导入路径
修复步骤

按优先级从高到低依次操作:

  • 排查命名冲突
    遍历项目目录,检查是否存在和httpx同名的文件、文件夹,如果存在直接重命名,避免和第三方包名冲突。
  • 显式指定解释器启动uvicorn
    弃用直接调用uvicorn命令的启动方式,改用当前虚拟环境的Python解释器以模块方式调用uvicorn,强制所有关联进程(包括热重载子进程)使用当前虚拟环境的解释器与依赖路径,执行命令如下:
    # 执行前先确认输出路径为当前虚拟环境下的Python路径,排除全局解释器干扰
    which python3
    # 以模块方式启动uvicorn
    python3 -m uvicorn main:app --reload
    
  • 虚拟环境内重装uvicorn
    如果之前在全局环境安装过uvicorn,先在已激活的虚拟环境内重新安装适配Python3.6的uvicorn版本,避免全局命令的路径干扰,执行命令如下:
    pip3 install uvicorn[standard]
    
    安装完成后重新执行上一步的启动命令即可。
  • 版本兼容兜底
    Python 3.6.9已停止官方维护,httpx 0.22.0是最后一个兼容Python3.6的正式版本,如果以上操作后仍存在导入异常,可强制重装对应兼容版本的httpx排除版本错配问题,执行命令如下:
    pip3 install httpx==0.22.0 --force-reinstall
    

内容的提问来源于stack exchange,提问作者saurabh kamble

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 15:24:34