使用Poetry管理依赖的FastAPI项目中docling模块找不到的原因排查
问题分析与解决方案
明明通过Poetry安装了docling依赖,运行FastAPI应用时却提示找不到该模块,以下是几个具体的排查和解决方向:
1. 确认Poetry虚拟环境的关联有效性
即便使用poetry run,偶尔也会出现虚拟环境识别异常:
- 先执行
poetry env info查看当前项目绑定的虚拟环境路径,确认路径无异常。 - 尝试进入虚拟环境后再启动应用,避免环境干扰:
poetry shell uvicorn src.main:app --reload --port 5000
2. 验证docling是否实际安装在当前虚拟环境中
- 执行
poetry run pip list | grep docling,确认Poetry管理的虚拟环境内确实存在该包(poetry show仅展示依赖声明,不代表实际安装成功)。 - 如果未找到,清除缓存后重新安装:
poetry cache clear --all pypi poetry install --no-root
3. 检查Python版本兼容性
你的项目指定了Python 3.12,需确认docling^2.4.2是否支持该版本:
- 执行
poetry show docling查看输出中的兼容性说明,若3.12不在支持范围内,要么将Python版本降级到兼容版本(如3.11),要么升级docling到支持3.12的版本。
4. 排查项目结构的潜在冲突
- 检查
src目录下是否存在与docling同名的文件夹/文件,哪怕是空的,Python也会优先加载本地同名模块,导致找不到第三方依赖。若有则重命名或删除。
5. 检查多Python/Poetry环境的干扰
- 执行
poetry run python --version,确认虚拟环境内的Python版本与项目指定的3.12一致。 - 若之前切换过Python版本,重新创建虚拟环境:
poetry env remove python3.12 poetry env use python3.12 poetry install
内容的提问来源于stack exchange,提问作者Yaovi
相关产品推荐
相关产品推荐

