Tensorflow: 从 google.protobuf 导入描述符为 _descriptor ImportError: No module named google.protobuf

创建于 2016-06-28  ·  3评论  ·  资料来源: tensorflow/tensorflow

大家好,我正在亚马逊网络服务微服务平台上使用 tensorflow 开展一个项目,但遇到了一些问题。 我使用 pip 将 tensorflow 安装到 virtualenv 中。 然后我将 /env/lib/python2.7/site-packages/ 的内容与我的源代码一起压缩到 AWS Lambda 的开发包中(env 是我的 virtualenv 的名称)。 这是为 AWS Lambda 进程使用 python 库的过程,我没有遇到其他库的任何问题。 我已经为 numpy、scipy、Pillow 和其他一些受支持程度较低的库完成了此操作,并且它们在 Lambda 上都运行良好。

但是,当我尝试使用 tensorflow 时,它会返回:

无法导入模块“分类”:回溯(最近一次调用最后一次):文件"/var/task/tensorflow/python/__init__.py",第 52 行,在从 tensorflow.core.framework.graph_pb2 导入 * 文件“/var/task/tensorflow/core/framework/graph_pb2.py”,第 6 行,在from google.protobuf import descriptor as _descriptor ImportError: No module named google.protobuf 导入 tensorflow 时出错。 除非您使用的是 bazel,否则您不应该尝试从其源目录导入 tensorflow; 请退出 tensorflow 源代码树,然后从那里重新启动您的 python 解释器。

分类是 AWS Lambda 在调用时调用的源脚本,并与我描述的 /env/lib/python2.7/site-packages/ 的内容一起压缩。

这些错误已在其他几个地方得到解决,但我在这些页面上找到的解决方案都没有对我有用,可能是因为它们都没有使用 lambda。 由于 lambda 导入库的方式,tensorflow 是否可能无法与 lambda 一起使用? 如果是这样,是否仅从我作为 zip 上传的源文件夹中导入 tensorflow 包?

重现的具体步骤:

我突然想到这可能不是 tensorflow 可能支持的东西,因为大多数人没有在 AWS 容器中使用 tensorflow,但希望有人可以提供帮助,或者至少尽力而为,即使他们没有专门的经验AWS。

谢谢!!

最有用的评论

好的,我不知道这是做什么的,但它解决了整个问题::

cd 进入站点包
touch google/__init__.py
在压缩站点包之前执行此操作
^bash

所有3条评论

好的,我不知道这是做什么的,但它解决了整个问题::

cd 进入站点包
touch google/__init__.py
在压缩站点包之前执行此操作
^bash

这很迷人。 我不知道问题是什么,但它可能是 AWS lambda 特有的。 我会关闭这个问题。

在我的旅行中偶然发现了这个。 这不是 Lambda,而是protobuf模块: https ://github.com/google/protobuf/issues/1296

此页面是否有帮助?
0 / 5 - 0 等级