Python 2.7 Google Cloud BigQuery导入在应用程序引擎项目中不起作用

Python 2.7 Google Cloud BigQuery导入在应用程序引擎项目中不起作用,python-2.7,google-app-engine,google-bigquery,python-import,Python 2.7,Google App Engine,Google Bigquery,Python Import,我使用以下代码构建了一个应用引擎项目,将数据从google cloud bucket移动到bigquery表中 import argparse import time import uuid from google.cloud import bigquery def load_data_from_gcs(dataset_name, table_name, source): bigquery_client = bigquery.Client() dataset = bigqu

我使用以下代码构建了一个应用引擎项目,将数据从google cloud bucket移动到bigquery表中

import argparse
import time
import uuid

from google.cloud import bigquery


def load_data_from_gcs(dataset_name, table_name, source):
    bigquery_client = bigquery.Client()
    dataset = bigquery_client.dataset(dataset_name)
    table = dataset.table(table_name)
    job_name = str(uuid.uuid4())

    job = bigquery_client.load_table_from_storage(
        job_name, table, source)

    job.begin()

    wait_for_job(job)

    print('Loaded {} rows into {}:{}.'.format(
        job.output_rows, dataset_name, table_name))


def wait_for_job(job):
    while True:
        job.reload()
        if job.state == 'DONE':
            if job.error_result:
                raise RuntimeError(job.error_result)
            return
        time.sleep(1)


if __name__ == '__main__':
    parser = argparse.ArgumentParser(
        description=__doc__,
        formatter_class=argparse.RawDescriptionHelpFormatter)
    parser.add_argument('dataset_name')
    parser.add_argument('table_name')
    parser.add_argument(
        'source', help='The Google Cloud Storage object to load. Must be in '
        'the format gs://bucket_name/object_name')

    args = parser.parse_args()

    load_data_from_gcs(
        args.dataset_name,
        args.table_name,
        args.source)
我还将默认的app.yaml文件更改为上述文件,并删除了webapp2库条目,我的app.yaml文件如下所示

application: gcstobq
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: main.app
由于我是python和app engine新手,我不知道是否需要将main.py文件中定义的库包含到app.yaml中,以及是否需要使用命令行工具运行此应用程序


请让我知道我是否遗漏了什么?

谷歌云使用了新的Python名称空间格式(如果您查看源代码,您会注意到在目录结构中没有
\uuuu init\uuuuuuuuuuuy.py
)。这在Python3.3中用

幸运的是,在Python2.7中,您可以通过避免隐式导入轻松地解决这个问题。只需将其添加到文件的最顶端(在任何其他导入之前),即可获得Python 3的行为:


我还没有将应用程序上传到云端,但是当我在本地主机上运行应用程序时,我在日志文件中得到了以下信息,但是没有任何数据被发送到我的大查询表importorror:没有名为cloud的模块您安装了Google python libs吗?i、 pip安装——升级google cloud bigqueryI除了google cloud sdk和app engine之外,我还没有安装任何东西,你认为这个错误与这些丢失的库有关吗?我想是的。请尝试一下。我现在已经安装了google python库,但是当我运行该文件时,它给了我以下错误-来自google.cloud import bigquery importorror:没有名为cloud的模块