以下是代码
import httplib2, argparse, os, sys, json
from oauth2client import tools, file, client
from oauth2client.service_account import ServiceAccountCredentials
from googleapiclient import discovery
from googleapiclient.errors import HttpError
scope = ['https://www.googleapis.com/auth/prediction','https://www.googleapis.com/auth/devstorage.read_only']
def get_api(api, scope, service_account=True):
storage = file.Storage('oAuth2.json')
creds = storage.get()
if creds is None or creds.invalid:
creds = ServiceAccountCredentials.from_json_keyfile_name('service_account.json',
scopes=scope)
storage.put(creds)
http = creds.authorize(httplib2.Http())
return discovery.build(api, 'v1.6', http=http)
api = get_prediction_api('prediction')
以下是错误
typeError:无法实例化未知大小的ctype'evp_md_ctx'
基于此博客
使用此Google-api-python-client
我发现了有关问题的oauth2client,在我的情况下,问题是在撰写本文时解决了最新版本的Pyopenssl,16.2.0。
我安装的Google-api-python-client(上方链接)仅与Python2一起使用。截至今天,它与Conda Env内的Python2不起作用,只有在Conda Env之外,并且不与Python 3.5一起使用。
我没有要点的观点,但是化学的答案对我有用。我正在使用Python 3.5。我面临同样的问题,当我安装Pyopenssl时,它得到了解决。
pip install --upgrade pyOpenSSL