2017-07-30 49 views
0

我進口的Stackdriver日誌Python庫上的AWS lambda函數,就像這樣:錯誤裝載在AWS上的Stackdriver登錄客戶端LAMBDA

import google.cloud.logging 
    from google.cloud.logging.handlers import CloudLoggingHandler 
    from google.cloud.logging.handlers.transports.sync import SyncTransport 
    client = google.cloud.logging.Client.from_service_account_json('serviceAccountKey.json') 
    handler = CloudLoggingHandler(client, name='slackbot', transport=SyncTransport) 
    stackdriver = logging.getLogger('slackbot') 
    stackdriver.setLevel(logging.DEBUG) 
    stackdriver.addHandler(handler) 

我看到這個錯誤,但它似乎沒有不來自我的代碼的任何特定行,但來自圖書館本身?

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 

回答

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-20 * .pth文件(的BigQuery ,PubSub,Datastore等),並且只有其中一個(與PubSub相關的)導致問題。當我重命名該錯誤消息時,我仍然可以通過Python API導入和使用PubSub。