无法从DataLab连接到Bigquery API

时间:2016-04-14 17:19:50

标签: google-bigquery google-cloud-datalab

我在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(最近一次调用最后一次)     in()

     

----> 5个凭据= GoogleCredentials.get_application_default()   6   7 bigquery_service = build(' bigquery',' v2',凭据=凭据)

     

/usr/local/lib/python2.7/dist-packages/oauth2client/client.pyc in> get_application_default()      1202"""      1203回归自我    - > 1204      1205 @property      1206 def serialization_data(self):

     _get_implicit_credentials(cls)中的

/usr/local/lib/python2.7/dist-packages/oauth2client/client.pyc      1187 access_token,client_id,client_secret,refresh_token,      1188 token_expiry,token_uri,user_agent,revoke_uri = revoke_uri)    - > 1189      1190 def create_scoped_required(self):      1191"""此凭据对象是否为无范围。

     _pmplicit_credentials_from_gce()中的

/usr/local/lib/python2.7/dist-packages/oauth2client/client.pyc      1123 def _in_gce_environment():      1124"""检测代码是否在Compute Engine环境中运行。    - > 1125      1126返回:      1127如果在GCE环境中运行,则为True,否则为False。

     _get_application_default_credential_GCE()中的

/usr/local/lib/python2.7/dist-packages/oauth2client/client.pyc      1378凭据:要保存到众所周知的文件的凭据;      1379它应该是GoogleCredentials的一个实例    - > 1380 well_known_file:凭据所在文件的名称      1381保存;该参数应该用于      仅限1382测试

     

/usr/local/lib/python2.7/dist-packages/oauth2client/gce.py in()        24来自oauth2client._helpers import _from_bytes        25来自oauth2client import util   ---> 26来自oauth2client.client导入HttpAccessTokenRefreshError        27来自oauth2client.client导入AssertionCredentials        28

     

ImportError:无法导入名称HttpAccessTokenRefreshError

我错过了什么?为什么这个谷歌提供的示例不适用于数据实验室?

1 个答案:

答案 0 :(得分:1)

在做了一些谷歌搜索之后,我在这里找到了答案:authentication error in Cloud Datalab: "ImportError: No module named gce”

这个解决方案解决了我的问题。