大家好,我正在亚马逊网络服务微服务平台上使用 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 行,在
分类是 AWS Lambda 在调用时调用的源脚本,并与我描述的 /env/lib/python2.7/site-packages/ 的内容一起压缩。
这些错误已在其他几个地方得到解决,但我在这些页面上找到的解决方案都没有对我有用,可能是因为它们都没有使用 lambda。 由于 lambda 导入库的方式,tensorflow 是否可能无法与 lambda 一起使用? 如果是这样,是否仅从我作为 zip 上传的源文件夹中导入 tensorflow 包?
重现的具体步骤:
我突然想到这可能不是 tensorflow 可能支持的东西,因为大多数人没有在 AWS 容器中使用 tensorflow,但希望有人可以提供帮助,或者至少尽力而为,即使他们没有专门的经验AWS。
谢谢!!
好的,我不知道这是做什么的,但它解决了整个问题::
cd 进入站点包touch google/__init__.py
在压缩站点包之前执行此操作
^bash
这很迷人。 我不知道问题是什么,但它可能是 AWS lambda 特有的。 我会关闭这个问题。
在我的旅行中偶然发现了这个。 这不是 Lambda,而是protobuf
模块: https ://github.com/google/protobuf/issues/1296
最有用的评论
好的,我不知道这是做什么的,但它解决了整个问题::
cd 进入站点包
touch google/__init__.py
在压缩站点包之前执行此操作
^bash