【问题标题】:My project is on Google App Engine(webapp2). I am not able to import firebase-admin我的项目在 Google App Engine(webapp2) 上。我无法导入 firebase-admin
【发布时间】:2019-12-04 17:02:16
【问题描述】:

我正在使用 webapp2 开发我的网络应用程序。我试图设置 firebase-admin 但我无法导入它。 firebase-admin 文件位于 lib 文件夹中。我还通过 vendor.add 添加了 lib 文件夹。 如果我使用 lib.firebase-admin 导入 firebase-admin,它就可以工作。但是在 firebase-admin 的 init.py 文件夹中有很多导入。因此,即使是那些导入也不起作用。

从 firebase_admin 导入身份验证

以上代码行 'from firebase_admin import auth' 不起作用。但是“lib.firebase_admin import auth”有效。这是一种不可行的解决方法。

堆栈跟踪如下:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1535, in __call__
    rv = self.handle_exception(request, response, e)
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1529, in __call__
    rv = self.router.dispatch(request, response)
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1278, in default_dispatcher
    return route.handler_adapter(request, response)
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1102, in __call__
    return handler.dispatch()
  File "C:\Users\Farrukh Bin Rashid\Documents\Internship\Blog-GoogleSearchAPI - Firebase Admin\Blog\controllers\Handler.py", line 10, in dispatch
    webapp2.RequestHandler.dispatch(self)
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 572, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 570, in dispatch
    return method(*args, **kwargs)
  File "C:\Users\Farrukh Bin Rashid\Documents\Internship\Blog-GoogleSearchAPI - Firebase Admin\Blog\controllers\Home.py", line 22, in get
    default_app = firebase_admin.initialize_app()
  File "C:\Users\Farrukh Bin Rashid\Documents\Internship\Blog-GoogleSearchAPI - Firebase Admin\Blog\lib\firebase_admin\__init__.py", line 62, in initialize_app
    credential = credentials.ApplicationDefault()
  File "C:\Users\Farrukh Bin Rashid\Documents\Internship\Blog-GoogleSearchAPI - Firebase Admin\Blog\lib\firebase_admin\credentials.py", line 128, in __init__
    self._g_credential, self._project_id = lib.google.auth.default(scopes=_scopes)
  File "C:\Users\Farrukh Bin Rashid\Documents\Internship\Blog-GoogleSearchAPI - Firebase Admin\Blog\lib\google\auth\_default.py", line 281, in default
    credentials, project_id = checker()
  File "C:\Users\Farrukh Bin Rashid\Documents\Internship\Blog-GoogleSearchAPI - Firebase Admin\Blog\lib\google\auth\_default.py", line 111, in _get_gcloud_sdk_credentials
    from google.auth import _cloud_sdk
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\python\runtime\sandbox.py", line 1174, in load_module
    raise ImportError('No module named %s' % fullname)
ImportError: No module named google.auth```

【问题讨论】:

  • 能否请您添加导入库时收到的错误的堆栈跟踪?
  • 我已经添加了上面的堆栈跟踪。请检查。
  • 您是否尝试过删除 lib 文件夹,将这些库添加到您的 requirements.txt 中,例如“google-auth>=1.5.0”和“firebase-admin>=1.0.0”,然后运行“ pip install -t lib -r requirements.txt”?
  • 是的,我做到了。它仍然无法正常工作。除非我参考路径,否则不会检测到 lib 文件夹中的文件夹。

标签: python-2.7 google-app-engine pip firebase-admin webapp2


【解决方案1】:

如果您在 App Engine 上使用 Python 2.7,则需要关注 these steps 才能使用此库。如果你使用的是 Python 3.7,你可以只使用你的 requirements.txt 而不需要使用 vendor.add()。

【讨论】:

  • 您创建了 appengine_config.py 文件,但它对您不起作用?这个库在 GAE 标准 Python 2.7 中工作的唯一方法是显式引用 lib 文件夹。您需要按照“复制第三方库”下的 4 个步骤来使用此库。但是,您将无法在 Python 2.7 中仅在 3.7 中使用 requirements.txt。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 2011-12-07
  • 2018-01-14
  • 1970-01-01
  • 2019-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多