Windows下Python导入google.cloud.language_v1的enums模块报错求解
问题解决方法
报错原因
google-cloud-language 2.0及以上版本重构了导入结构,移除了顶层的enums、types模块导出,旧版本的导入语法不再兼容。同时你当前报错指向全局Python 3.10的依赖路径,说明运行代码时没有激活你创建的虚拟环境,会出现依赖版本不一致的问题。
解决方案
方案1:适配最新版本(推荐)
直接删除原代码中enums、types的单独导入语句,所有枚举、类型都通过language_v1直接调用即可,修改后的代码示例如下:
import os from google.cloud import language_v1
调用示例对比:
- 旧调用写法:
# 旧写法需要单独导入enums、types from google.cloud.language_v1 import enums from google.cloud.language import types doc_type = enums.Document.Type.PLAIN_TEXT doc = types.Document(content="测试文本", type_=doc_type)
- 新版调用写法:
# 无需单独导入,直接通过language_v1调用 doc_type = language_v1.Document.Type.PLAIN_TEXT doc = language_v1.Document(content="测试文本", type_=doc_type)
方案2:回退到兼容旧写法的版本
不想修改现有代码的话,在激活虚拟环境后执行以下命令,安装1.x版本的依赖:
<your-env>\Scripts\pip.exe install google-cloud-language==1.3.0
额外注意
运行代码前必须先执行<your-env>\Scripts\activate激活你创建的虚拟环境,避免全局依赖和虚拟环境依赖版本混淆导致的其他报错。
内容的提问来源于stack exchange,提问作者Sam Salim
相关产品推荐
相关产品推荐

