ImportError: невозможно импортировать имя cygrpc - PullRequest
0 голосов
/ 02 июня 2019

Я пытаюсь использовать режим Firebase Native в Google App Engine - Standard.Мой язык Python - это Python 2.7.Когда я пытаюсь импортировать из google.cloud firestore, появляется ошибка ImportError: невозможно импортировать имя cygrpc

Я развернул virtualenv, описанный в документации здесь .

pip install virtualenv
virtualenv env
source env/bin/activate

Мой appengine_config.py имеет значение

from google.appengine.ext import vendor
import os.path

# Add any libraries installed in the "lib" folder.
vendor.add('lib')
vendor.add(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'lib'))

my_app.py включает в себя

from google.appengine.ext.webapp import template
from google.appengine.ext import ndb
from google.appengine.api import mail

import os

from google.cloud import firestore



(/base/alloc/tmpfs/dynamic_runtimes/python27g/43d5822312de17fd/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py:269)
Traceback (most recent call last):
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/43d5822312de17fd/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/43d5822312de17fd/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 311, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/43d5822312de17fd/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/base/data/home/apps/s~openbarn-prod/20190602t102855.418624175446659791/main.py", line 4, in <module>
    from controllers import server, common, header
  File "/base/data/home/apps/s~openbarn-prod/20190602t102855.418624175446659791/controllers/server.py", line 10, in <module>
    from google.cloud import firestore
  File "/base/data/home/apps/s~openbarn-prod/20190602t102855.418624175446659791/lib/google/cloud/firestore.py", line 18, in <module>
    from google.cloud.firestore_v1 import __version__
  File "/base/data/home/apps/s~openbarn-prod/20190602t102855.418624175446659791/lib/google/cloud/firestore_v1/__init__.py", line 22, in <module>
    from google.cloud.firestore_v1._helpers import GeoPoint
  File "/base/data/home/apps/s~openbarn-prod/20190602t102855.418624175446659791/lib/google/cloud/firestore_v1/_helpers.py", line 21, in <module>
    import grpc
  File "/base/data/home/apps/s~openbarn-prod/20190602t102855.418624175446659791/lib/grpc/__init__.py", line 23, in <module>
    from grpc._cython import cygrpc as _cygrpc
ImportError: cannot import name cygrpc

У меня вопрос: можете ли вы использовать собственный режим Firestore в Google App Engine Standard, используя Python 2.7?Мне нужен стандарт GAE, потому что мы используем Google Endpoint, который не поддерживается в GAE-Flex.

Документ здесь говорит, что интеграция клиентской библиотеки App Engine не поддерживается в Python2.7 GAE Standard.среда.Но я не пытаюсь использовать клиентскую библиотеку App Engine, я пытаюсь использовать библиотеку сервера App Engine в стандартной среде GAE.Как решить для ошибки импорта для cygrpc?Решение здесь , говорит -

python -m pip install grpcio --ignore-installed

Это рекомендуется?

1 Ответ

1 голос
/ 03 июня 2019

Некоторое время назад GRPC не поддерживался стандартом GAE, см. GRPC и ошибка импорта типов в хранилище данных App Engine .С тех пор я не пробовал, но я не вижу новых действий в выпуске 149 .

Кроме того, ссылка cython в трассировке предполагает, что она может включать скомпилированный код, который нарушает ограничения стандартной изолированной среды среды python , которые применяются к развертываемому вами коду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...