微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

包含

如何解决包含

我写了一个python3 scrapy spider,我已经运行了很多次。现在,我想向其中添加google cloud数据存储功能(从数据存储读取/写入)。我去按照谷歌文档页面上的指示。但是,当我在脚本中包含库时,甚至没有调用任何函数(仅包含它会导致此问题),都会出现以下错误

AttributeError:模块'google.protobuf.descriptor'没有属性'_internal_create_key'

我在Stackoverflow和在线上进行了搜索,建议的响应是升级google protobuf软件包的安装(如此处所示:)

How to solve "AttributeError: module 'google.protobuf.descriptor' has no attribute '_internal_create_key"?

我尝试了此处列出的步骤,但没有成功。我仍然遇到相同的错误。请记住,我使用python3版本的pip(pip3)尝试了protobuf升级。它说它已经是最新的,并且说我正在使用版本3.13.0。正在加载的python版本是3.8.2。但是,其他人将protoc --version列为要运行的命令,但是当我运行该协议时,未安装该协议并且找不到该命令。请记住,关于protobuf的正确和有效版本为3.13.0,有很多评论,pip3已经说过。我附上了调用堆栈的屏幕快照,以防万一对某人有所帮助。

-

编辑:我刚刚尝试过的一件事是我运行了python3交互式外壳,并键入“来自google.cloud导入数据存储区”,并且它运行正常且没有错误。这可能是问题所在的线索吗?另外,当我发出命令pip3 install --upgrade google-cloud-datastore时,它说所有条件都已经满足,包括google protobuf> = 3.12.0,它是正确的3.13.0。但是,问题仍然存在。

Edit2:我还创建了一个Windows 10虚拟机,并且在python3 / anaconda中,include也可以正常工作。如果是这种情况,我可能最终只是在vm中进行开发。看来我的ubuntu机器上肯定有某种旧的protobuf文件或依赖项是过时的或错误的。

解决方法

几天后,这个问题神奇地解决了。如先前的评论者所述,这似乎是一个缓存问题,并且缓存已清理完毕,而现在抓爬式的网络抓取工具工作正常。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?