Google Python API 尝试导入已弃用的 oauth2client.contrib.multistore_file

Google Python API tries to import the deprecated oauth2client.contrib.multistore_file

我正在尝试为我的端点应用程序构建发现文档,但出现以下错误:

pc@pc:~/backend$ endpointscfg.py get_discovery_doc [PROJECT_NAME]
Traceback (most recent call last):
  File "/home/pc/Downloads/google-cloud-sdk/bin/endpointscfg.py", line 10, in <module>
    import bootstrapping.bootstrapping as bootstrapping
  File "/home/pc/Downloads/google-cloud-sdk/bin/bootstrapping/bootstrapping.py", line 22, in <module>
    from googlecloudsdk.core.credentials import store as c_store
  File "/home/pc/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/credentials/store.py", line 30, in <module>
    from googlecloudsdk.core.credentials import creds
  File "/home/pc/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/credentials/creds.py", line 32, in <module>
    from oauth2client.contrib import multistore_file
ImportError: cannot import name multistore_file

oauth2client 的版本是4.1.0。似乎文件 oauth2client.contrib.multistore_file 已被弃用,然后从 oauth2client (https://github.com/google/oauth2client/pull/589) 中删除,所以我假设我的 google 客户端库已过时,但我有 运行 gcloud components update app-engine-python 我仍然得到同样的错误。

我是不是做错了什么?

恐怕解决方案是您必须使用旧版本的 oauth2client。如果您确保拥有最新 (1.1.2) 版本的 google-endpoints-api-management,那么您需要安装 google-apitools版本 0.5.11 和 oauth2client 版本 3.0.0.