在AWS Lambda上加载Stackdriver日志记录客户端时出错

时间:2017-07-30 00:09:07

标签: google-cloud-platform stackdriver

我在AWS Lambda函数上导入Stackdriver日志记录python库,如下所示:

Error processing line 10 of /var/task/gapic_google_cloud_logging_v2-0.91.3-py3.6-nspkg.pth:

23:59:18
Traceback (most recent call last):
23:59:18
File "/var/lang/lib/python3.6/site.py", line 168, in addpackage
23:59:18
exec(line)
23:59:18
File "<string>", line 1, in <module>
23:59:18
File "<frozen importlib._bootstrap>", line 557, in module_from_spec

23:59:18
AttributeError: 'NoneType' object has no attribute 'loader'

23:59:18
Remainder of file ignored

23:59:18
Error processing line 10 of /var/task/proto_google_cloud_logging_v2-0.91.3-py3.6-nspkg.pth:

23:59:18
Traceback (most recent call last):

23:59:18
File "/var/lang/lib/python3.6/site.py", line 168, in addpackage

23:59:18
exec(line)

23:59:18
File "<string>", line 1, in <module>

23:59:18
File "<frozen importlib._bootstrap>", line 557, in module_from_spec

23:59:18
AttributeError: 'NoneType' object has no attribute 'loader'

23:59:18
Remainder of file ignored

我看到了这个错误,但它似乎不是来自我的代码的任何特定行,而是来自库本身?

{{1}}

1 个答案:

答案 0 :(得分:0)

我遇到了与Google Cloud PubSub模块类似的问题。我通过移动引发错误的.pth文件来解决它。尝试运行命令:

mv /var/task/proto_google_cloud_logging_v2-0.91.3-py3.6-nspkg.{pth,IGNORE}

这些* .pth文件在Python启动时运行。如果您实际打开.pth文件并进行检查,它的作用是抓取有关系统上可用的Google Cloud API包和版本的信息,并为Google Cloud API的每个子模块设置属性(对应于不同的云)服务)。

我不知道是什么导致它破坏,但在我的情况下,我有三个不同的版本(前缀为proto_google_cloud_gapic_),每个版本都有10-与各种服务(BigQuery,PubSub,Datastore等)相关的20 * .pth文件,其中只有一个(与PubSub相关的文件)导致了问题。当我重命名它时,错误消息消失了,我仍然能够通过Python API导入和使用PubSub。