FastAPI + LangChain项目启动报错:No module named 'qdrant_client'
FastAPI + LangChain项目启动报错:No module named 'qdrant_client'
嘿,我太懂你这种明明包已经装了却报错的崩溃感了!咱们先把问题根源揪出来——你启动FastAPI用的Python环境,和你安装qdrant_client的环境根本不是同一个!
你说普通Python文件能正常运行,但转成FastAPI就报错,核心原因就在这里:你跑普通脚本时用的是装了依赖的那个Python解释器,但直接用uvicorn命令启动服务时,系统调用的是另一个环境里的uvicorn(比如系统默认Python、或者其他虚拟环境的uvicorn),那个环境里根本没装qdrant_client。
给你几个亲测有效的解决步骤,按顺序来:
1. 用当前环境的Python直接启动uvicorn(最快速的解决方法)
别直接敲uvicorn main:ia --port 8000 --reload,改成用虚拟环境的Python来调用uvicorn:
python -m uvicorn main:ia --port 8000 --reload
这样能100%确保用的是你当前激活的虚拟环境里的Python,也就是已经装了qdrant_client的那个环境。
2. 强制在当前环境重装依赖,确保环境一致性
先激活你的虚拟环境:
- Mac/Linux:
source venv/bin/activate(venv是你的虚拟环境目录名,换成你自己的) - Windows:
venv\Scripts\activate
然后执行强制重装命令,彻底修复可能的依赖残留问题:
pip install --force-reinstall qdrant_client
3. 用requirements.txt统一管理依赖(避免以后再踩坑)
把你的FastAPI项目所有依赖都写到requirements.txt文件里,比如内容可以是:
fastapi>=0.104.1 uvicorn>=0.24.0 qdrant_client>=1.7.0
然后用这个命令安装,确保所有依赖都在同一个环境里:
pip install -r requirements.txt
如果不知道当前环境有哪些依赖,可以用pip freeze > requirements.txt一键导出所有已装包。
4. 先验证环境再启动服务
激活虚拟环境后,先跑这个命令验证依赖是否真的存在:
python -c "import qdrant_client; print('依赖正常,版本:', qdrant_client.__version__)"
如果能正常打印版本号,说明环境没问题,再用步骤1的命令启动FastAPI,肯定就不会报错了!
备注:内容来源于stack exchange,提问作者Deiver Garcia
相关产品推荐
相关产品推荐

