python - 获取模块'google.protobuf.descriptor_pool'在我的python脚本中没有属性'Default'
问题描述
我是 python 新手,正在使用其他人编写的 python 脚本。我在另一台PC上运行良好。只需要安装一些软件包,包括pip3
,和.google-cloud
google-cloud-bigquery
pandas
现在,当我在另一台 PC 上安装相同的软件包时,我无法运行该脚本。首先显示以下错误:
module = 'google.protobuf.descriptor_pb2' TypeError: expected bytes, Descriptor found
但是,当在清除/重新安装/更新包并添加 protobuf3 和 protobuf-py3 包时,错误已更新为以下消息:
from google.cloud import bigquery
File "/home/mobeen/.local/lib/python3.6/site-packages/google/cloud/bigquery/__init__.py", line 35, in <module>
from google.cloud.bigquery.client import Client
File "/home/mobeen/.local/lib/python3.6/site-packages/google/cloud/bigquery/client.py", line 50, in <module>
import google.cloud._helpers
File "/home/mobeen/.local/lib/python3.6/site-packages/google/cloud/_helpers.py", line 33, in <module>
from google.protobuf import duration_pb2
File "/home/mobeen/.local/lib/python3.6/site-packages/google/protobuf/duration_pb2.py", line 8, in <module>
from google.protobuf import symbol_database as _symbol_database
File "/home/mobeen/.local/lib/python3.6/site-packages/google/protobuf/symbol_database.py", line 193, in <module>
_DEFAULT = SymbolDatabase(pool=descriptor_pool.Default())
AttributeError: module 'google.protobuf.descriptor_pool' has no attribute 'Default'
.任何帮助或线索将不胜感激
解决方案
我通过卸载protobuf解决了这个问题:
pip3 uninstall protobuf
pip3 uninstall python3-protobuf
注意:您应该重复此命令,直到收到没有名为 protobuf 的包的消息。
之后执行:
pip3 install protobuf
只安装 protobuf ,不要安装 python3-protobuf
希望这个解决方案可以帮助你。
推荐阅读
- indexing - SAS 索引函数 - 使用另一列的值搜索一列
- c++ - 通过提供 rowIndices 列表从矩阵中获取行
- android - 如果我们添加新的 xml 布局,则每次 Gradle 同步
- git - 我的文件夹将它的小写更改为大写
- nginx - 使用 sed 替换 nginx 监听端口
- cassandra - Cassandra 和 <=, => 运算符在日期上没有 ALLOW FILTERING
- python-3.x - 过滤结果 Pandas
- java - 向复合布局添加滚动条在 java swt 中不起作用
- python - DataFrame.from_dict 生成列和行 Pandas python
- c# - 导入模块:无法在 Powershell 中加载文件或程序集