使用Poetry管理依赖时调用Google Natural Language API出现ModuleNotFoundError: No module named 'google'问题求助
解决Poetry环境下Google Cloud Language API的ModuleNotFoundError问题
我之前也踩过类似的Poetry依赖加载坑,给你几个排查和解决的方向,应该能搞定这个ModuleNotFoundError: No module named 'google'的问题:
1. 确认你真的在使用Poetry的虚拟环境
虽然你说没有单独用venv,但Poetry默认会自动创建专属的虚拟环境,很多时候我们以为用了全局环境,其实Poetry的依赖都装在它自己的虚拟环境里。可以按以下步骤确认:
- 在终端运行
poetry env info,复制输出里的Virtualenv路径 - 打开VSCode的Python解释器选择界面,手动找到并选择这个路径下的Python可执行文件(比如
xxx/.venv/bin/python或者Windows下的xxx/.venv/Scripts/python.exe) - 之后用
poetry run python来执行你的脚本,确保完全使用Poetry的环境
2. 重置Poetry依赖,解决缓存/锁文件问题
有时候Poetry的锁文件或者本地缓存会导致依赖安装不完整,试试这几步:
- 删除项目根目录下的
poetry.lock文件和.venv文件夹(如果存在) - 运行
poetry install重新安装所有依赖 - 安装完成后,再次尝试导入
google.cloud.language_v1
3. 移除冲突的旧依赖包
你的pyproject.toml里同时包含了google-cloud = "^0.34.0",这个是Google Cloud的旧版聚合包,现在已经被废弃了,它和你安装的新版google-cloud-language可能存在依赖冲突,导致google核心模块没有正确安装:
- 打开
pyproject.toml,删除google-cloud = "^0.34.0"这一行 - 运行
poetry update google-cloud-language重新处理依赖,或者直接执行poetry install
4. 验证依赖是否真的安装成功
可以通过以下命令确认google-cloud-language是否正确安装:
- 运行
poetry show google-cloud-language,如果输出了包的版本信息,说明安装成功;如果提示找不到包,那说明Poetry的安装过程有问题,可能需要检查网络或者Poetry的源配置 - 也可以运行
poetry run pip list | grep google,查看所有Google相关的包是否存在
内容的提问来源于stack exchange,提问作者mcansado
相关产品推荐
相关产品推荐

