1

我正在运行我在 Windows 10 的 github 上找到的apprtc源代码。但是当我查看 Cmd 控制台时出现此错误。似乎缺少apiclient 。我使用它安装了它,pip install但我遇到了同样的错误。我也试过pip install --upgrade google-api-python-client,但我仍然得到同样的错误。

Traceback (most recent call last):
  File "C:\Users\Gilbert\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "C:\Users\Gilbert\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 311, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "C:\Users\Gilbert\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "C:\Users\Gilbert\Documents\Projets\APPRTC\apprtc-master\src\app_engine\apprtc.py", line 23, in <module>
    import analytics
  File "C:\Users\Gilbert\Documents\Projets\APPRTC\apprtc-master\src\app_engine\analytics.py", line 14, in <module>
    import apiauth
  File "C:\Users\Gilbert\Documents\Projets\APPRTC\apprtc-master\src\app_engine\apiauth.py", line 12, in <module>
    from apiclient import discovery
ImportError: No module named apiclient
INFO     2020-07-11 00:59:21,395 module.py:865] default: "GET / HTTP/1.1" 500 -
ERROR    2020-07-10 23:59:21,443 wsgi.py:269]
Traceback (most recent call last):
  File "C:\Users\Gilbert\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "C:\Users\Gilbert\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 311, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "C:\Users\Gilbert\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "C:\Users\Gilbert\Documents\Projets\APPRTC\apprtc-master\src\app_engine\apprtc.py", line 23, in <module>
    import analytics
  File "C:\Users\Gilbert\Documents\Projets\APPRTC\apprtc-master\src\app_engine\analytics.py", line 14, in <module>
INFO     2020-07-11 00:59:21,443 module.py:865] default: "GET /favicon.ico HTTP/1.1" 500 -
    import apiauth
  File "C:\Users\Gilbert\Documents\Projets\APPRTC\apprtc-master\src\app_engine\apiauth.py", line 12, in <module>
    from apiclient import discovery
ImportError: No module named apiclient
4

1 回答 1

0

我认为您的示例代码已经过时,在 App Engine 中使用 Google Api 客户端导入发现服务的正确方法就像这个代码片段。

from googleapiclient import discovery
from oauth2client.client import GoogleCredentials

# this will take the credentials that was defined by the command 'gcloud auth application-default login' on local environments, this is already defined on App Engine STD/Flex(no custom runtime) and Cloud functions.

credentials = GoogleCredentials.get_application_default()


# if you are using Cloud functions or App Engine (GAE) STD environment set
# cache_discovery=False, to avoid try to save cache on disk
# if this is not set, the application works fine but will thrown some warnings

service = discovery.build('cloudresourcemanager', 'v1', credentials=credentials, cache_discovery=False)

# this example is to use cloud resource manager, but you can change this for the service that you need
#disable warnings to avoid noise in the logs, this applies for GAE STD & Cloud functions

logging.getLogger('googleapiclient.discovery_cache').setLevel(logging.ERROR)


要求.txt

google-api-python-client==1.9.3
oauth2client==4.1.3

在这个 Google 的 repo中,您可以找到更新的示例

于 2020-07-14T16:33:06.233 回答