今天,我一整天都在尝试为我的一个新项目设置python。我经历了整个过程
我试过最简单的例子
import os
from google.cloud import bigquery
def main():
# [START bigquery_quickstart]
# Imports the Google Cloud client library
# Instantiates a client
creds = "absolute-path-to-file.json"
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = creds
print(creds)
bigquery_client = bigquery.Client().from_service_account_json(creds)
# The name for the new dataset
dataset_name = 'my_new_dataset'
# Prepares the new dataset
dataset = bigquery_client.dataset(dataset_name)
# Creates the new dataset
dataset.create()
print('Dataset {} created.'.format(dataset.name))
# [END bigquery_quickstart]
if __name__ == '__main__':
main()并得到以下错误
Traceback (most recent call last):
File "prepare-upload.py", line 121, in <module>
main()
File "prepare-upload.py", line 116, in main
dataset.create()
File "//anaconda/envs/tpot/lib/python3.5/site-packages/google/cloud/bigquery/dataset.py", line 431, in create
method='POST', path=path, data=self._build_resource())
File "//anaconda/envs/tpot/lib/python3.5/site-packages/google/cloud/_http.py", line 293, in api_request
raise exceptions.from_http_response(response)
google.cloud.exceptions.Forbidden: 403 POST https://www.googleapis.com/bigquery/v2/projects/kobas-public-datasets-182301/datasets: Access Not Configured. BigQuery API has not been used in project 203593156286 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/bigquery.googleapis.com/overview?project=203593156286 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.API是启用的,我不知道问题是什么。令我困惑的是,我为我的另外两个项目做了同样的过程,而且它起了作用。再观察一次。这个错误建议转到
https://console.developers.google.com/apis/api/bigquery.googleapis.com/overview?project=203593156286
然而,这种联系是过时的,而应该是
谢谢。
发布于 2017-10-10 11:47:32
试试这样的mb,它会有帮助的(我在Pyhton2.7中用它作为auth ):
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/path_to_key/xxx.json"
credentials = GoogleCredentials.get_application_default()
bigquery_service = build('bigquery', 'v2', credentials=credentials)而且,我在您的代码中没有看到your_project_id的任何定义。例如,对于我使用的查询:
query_response = query_request.query(
projectId=your_project_id,
body=query_data).execute()发布于 2017-12-29 09:55:29
在您正在执行Python代码的机器中,是否启用了“对Cloud的访问”?
在创建VM时,可以更改它:

发布于 2020-04-12 07:49:35
只要您有GOOGLE_APPLICATION_CREDENTIALS环境变量,就可以使用以下代码初始化客户端:
from google.cloud import bigquery
client = bigquery.Client()还要确保服务帐户有足够的访问您的项目。因此,在任何情况下,假设您有多个项目,并且希望使用服务帐户访问每个项目,那么您应该:
https://stackoverflow.com/questions/46626964
复制相似问题