Работникът за задача на Google Cloud Platform не може да намери библиотеката за регистриране

Създадох проста задача, базирана на Google Cloud Platform пример за задача за натискане на брояч за актуализиране. Всичко, което искам да направя, е да регистрирам, че е бил извикан в регистрационните файлове на Stackdriver.

from google.cloud import logging
logging_client = logging.Client()
log_name = 'service-log'
logger = logging_client.logger(log_name)

import webapp2

class UpdateCounterHandler(webapp2.RequestHandler):
    def post(self):
        amount = int(self.request.get('amount'))
        logger.log_text('Service startup task done.')


app = webapp2.WSGIApplication([
    ('/update_counter', UpdateCounterHandler)
], debug=True)

След внедряване на това и извикване има грешка. В регистрационните файлове онлайн пише:

from google.cloud import logging
ImportError: No module named cloud

Това не е локална версия, а такава, която съм внедрил. Трудно ми е да повярвам, че наистина трябва да инсталирам библиотеки на Python в производствената среда за изпълнение. (Дори не мога да си представя, че мога.)


person Doug Knesek    schedule 21.03.2018    source източник


Отговори (2)


Като root readme заявява:

Много проби изискват инсталиране на допълнителни библиотеки. Ако има requirements.txt, ще трябва да инсталирате зависимостите с pip.

Опитайте да добавите библиотеката, както е обяснено тук.

person Tudormi    schedule 29.03.2018

Когато използвате logging от стандартната библиотека на Python в App Engine, регистрационните файлове също завършват в Stackdriver. Така че можете да използвате import logging вместо from google.cloud import logging.

Когато се интересувате конкретно от използването на библиотеката google.cloud.logging, тогава тя трябва да бъде инсталирана в папка на проекта ./lib, както е посочено от Tudormi: тук

person Taavi    schedule 20.04.2018