导入google.cloud.speech报错cannot import name 'client_pb2'如何解决
问题原因
错误日志显示加载google.api模块时优先读取了项目内/home/yugwon/IP_boundary/python-generated/目录下的不完整版本,而非虚拟环境site-packages中完整的依赖包,导致缺少client_pb2文件。
可行解决方案
- 调整Python路径优先级
先执行命令清空PYTHONPATH临时测试:
再运行你的STT脚本验证是否恢复。如果生效,检查项目配置、IDE环境变量、shell配置文件(.bashrc/.zshrc等)中是否把export PYTHONPATH=""/home/yugwon/IP_boundary/python-generated加入了PYTHONPATH,移除该配置或者调整路径顺序让虚拟环境site-packages优先级更高即可。 - 重装适配版本的依赖包
如果调整路径后仍报错,卸载现有相关依赖后重新安装适配Python3.7的版本:# 卸载现有包 pip uninstall -y google-cloud-speech googleapis-common-protos google-api-core grpcio # 清空pip缓存 pip cache purge # 安装适配Python3.7的匹配版本 pip install google-cloud-speech==2.21.0 googleapis-common-protos==1.59.0 google-api-core==2.11.1 - 补全本地编译的proto文件
如果python-generated目录是你本地用protoc编译生成的,检查编译时是否遗漏了google/api/client.proto文件,将该文件加入编译列表重新生成,即可在对应目录下得到缺失的client_pb2.py文件。
内容的提问来源于stack exchange,提问作者yugwon
相关产品推荐
相关产品推荐

