Google Cloud Function Python устанавливает зависимость от каждого запроса - PullRequest
0 голосов
/ 26 сентября 2018

needs.txt :

pymystem3==0.2.0

main.py :

from pymystem3 import Mystem
import json

def hello_world(request):
    request_json = request.get_json()
    if request_json and 'text' in request_json:
        text = request_json['text']
        m = Mystem()
        lemmas = m.lemmatize(text)

        return json.dumps(m.analyze(text), ensure_ascii=False, encoding='utf8', sort_keys=True, indent=2)
    else:
        return 'No text provided'

Вход в облако Google:

hello_world
032ljsdfawo
Function execution started

hello_world
032ljsdfawo
Installing mystem to /tmp/.local/bin/mystem from http://download.cdn.yandex.net/mystem/mystem-3.1-linux-64bit.tar.gz

Expand all | Collapse all {
 insertId:  "000000-a9eaa07b-d936-45d8-a186-927cc94246d6"  
 labels: {…}  
 logName:  "projects/project_name/logs/cloudfunctions.googleapis.com%2Fcloud-functions"  
 receiveTimestamp:  "2018-09-26T09:41:31.070927654Z"  
 resource: {…}  
 severity:  "ERROR"  
 textPayload:  "Installing mystem to /tmp/.local/bin/mystem from http://download.cdn.yandex.net/mystem/mystem-3.1-linux-64bit.tar.gz"  
 timestamp:  "2018-09-26T09:41:19.595Z"  
}

Я новичок в python, так что это, вероятно, очень простая ошибка.Может быть, предполагается, что зависимости будут установлены перед каким-либо развертыванием функции и скомпилированы с main.py?

1 Ответ

0 голосов
/ 26 сентября 2018

Это связано с неудачным поведением библиотеки pymsystem: вместо того, чтобы включать все, что ей нужно, в свой пакет Python, он пытается загружать дополнительные вещи во время выполнения, особенно каждый раз, когда вы импортируете его.

Вы видите, что сообщение в ваших журналах поступает из самой библиотеки .

Похоже, библиотека пытается определить, была ли она уже установлена ​​или нет, но это не так.работает правильно.Я бы порекомендовал подать проблему на трекер проблем проекта .

...