【发布时间】:2016-04-14 17:19:50
【问题描述】:
我在 Python 中运行以下代码以从数据实验室笔记本连接到大查询 api:
!pip install google-api-python-client==1.4.2 httplib2==0.9.2 oauth2client==1.5.2 pyasn1==0.1.9 pyasn1-modules==0.0.8 rsa==3.2.3 simplejson==3.8.1 six==1.10.0 uritemplate==0.6 wheel==0.24.0
import httplib2
import time
import datetime as dt
import sys
import subprocess
from googleapiclient import errors
from googleapiclient.discovery import build
from oauth2client.file import Storage
from oauth2client.client import GoogleCredentials
from googleapiclient.http import MediaFileUpload
import gcp.bigquery as bq
import pandas as pd
credentials = GoogleCredentials.get_application_default()
bigquery_service = build('bigquery', 'v2', credentials=credentials)
我收到以下错误:
ImportError Traceback(最近一次调用最后一次) 在 ()
----> 5 个凭据 = GoogleCredentials.get_application_default() 6 7 bigquery_service = build('bigquery', 'v2', credentials=credentials)
/usr/local/lib/python2.7/dist-packages/oauth2client/client.pyc in >get_application_default() 第1202章 1203 回归自我 -> 1204 第1205章 1206 def 序列化数据(自我):
/usr/local/lib/python2.7/dist-packages/oauth2client/client.pyc in _get_implicit_credentials(cls) 第1187章 第1188章 -> 1189 第1190章 1191 """这个Credentials对象是否是无范围的。
/usr/local/lib/python2.7/dist-packages/oauth2client/client.pyc in _implicit_credentials_from_gce() 第1123章 1124 """检测代码是否在计算引擎环境中运行。 -> 1125 1126 返回: 1127 运行在GCE环境下为真,否则为假。
/usr/local/lib/python2.7/dist-packages/oauth2client/client.pyc 在 _get_application_default_credential_GCE() 1378凭据:要保存到知名文件的凭据; 1379 它应该是 GoogleCredentials 的一个实例 -> 1380 well_known_file:凭证所在文件的名称 1381人获救;该参数应该用于 仅 1382 测试
/usr/local/lib/python2.7/dist-packages/oauth2client/gce.py in () 24 来自 oauth2client._helpers 导入 _from_bytes 25 从 oauth2client 导入实用程序 ---> 26 从 oauth2client.client 导入 HttpAccessTokenRefreshError 27 从 oauth2client.client 导入 AssertionCredentials 28
ImportError: 无法导入名称 HttpAccessTokenRefreshError
我错过了什么?为什么这个谷歌提供的例子不能在数据实验室工作?
【问题讨论】:
-
为什么不只使用 Datalab 内置的 BigQuery 支持(在 gcp.bigquery 和支持的 %bigquery 魔术中)?
标签: google-bigquery google-cloud-datalab