在本地开发应用程序引擎服务器(以及生产应用程序引擎)上,我想运行一个包含大查询相关代码的脚本,但是我收到了一个错误。我已经访问了stackoverflow中与此错误相关的所有答案,但没有找到任何可行的方法。以下是发生的代码和错误。提前感谢您的宝贵时间。
码
#!/usr/bin/python
from google.cloud import bigquery
client = bigquery.Client('myproject')
query = '(SELECT *FROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY tb1.user_id ORDER BY tb1.timestamp DESC) AS RowNo FROM `mytable` tb1) x WHERE x.RowNo = 1)'
job_config = bigquery.QueryJobConfig()
job_config.allow_large_results = True
job_config.destination = dest_table_ref
job_config.write_disposition = 'WRITE_TRUNCATE'
query_job = client.query(query, job_config=job_config)
当我点击网址(http://myproject:8080/cronscript)时,我得到以下错误
错误
文件“/home/username/src/project-name/python_reporting-2017-12-15-10-37/cronscript.py”,第3行,来自google.cloud导入bigquery文件“/ google / google-cloud-sdk /platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py“,第1132行,在load_module中引发ImportError('没有名为%s的模块'%fullname)ImportError:没有名为google.cloud.bigquery的模块
但是,当我通过键入python打开python shell然后我键入
来自google.cloud导入bigquery
它工作正常。如果我运行python cronscript.py它也会正确执行$ python cronscript.py完成$
只有当我在执行dev_appserver.py app.yaml后从本地应用服务器执行此操作时,才会收到上述错误。
我已经尝试了什么
1) sudo pip install --upgrade google-cloud-bigquery
2) my requirements.txt look like
google-api-python-client
google-cloud
3) pip install -t lib/ requirements.txt
4) from google.appengine.ext import vendor
vendor.add('lib')
5) from __future__ import absolute_import
仍未解决。
看起来你没有这个模块。那么,您是否尝试安装/升级您的Google云?
sudo pip install --upgrade google-cloud-bigquery