运行 Cloud Dataflow 服务上的模板

Run Template on the Cloud Dataflow service

我正在尝试 运行使用我在 Google DataFlow 中开发的本地模板。

问题是当我 运行 在 Google Cloud Shell 中使用:

python -m dataflow.py --project poc-cloud-209212 --temp_location gs://<...>

我遇到了这个错误

/usr/bin/python: No module named apache_beam 

所以我尝试了一个更简单的例子:wordcount

如Google所说,我执行:

python -m wordcount --input gs://dataflow-samples/shakespeare/kinglear.txt --output gs://<...> --runner DataflowRunner --project <project> --temp_location gs://<...>

我得到了这个错误:

/usr/bin/python: No module named past.builtins

如果我在没有 .py 的情况下执行:

 python -m wordcount --input gs://dataflow-samples/shakespeare/kinglear.txt --output gs://<...> --runner DataflowRunner --project <project> --temp_location gs://<...>

同样的错误,但有“更多”信息

Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/<...>/wordcount.py", line 26, in <module>
    from past.builtins import unicode
ImportError: No module named past.builtins

这是怎么回事?我如何 运行 Google Cloud Dataflow 中的那些模板?

我是否需要像在本地那样在 Google 云中设置环境,还是默认设置?

我终于做到了

是这样的:

在Google云中使用python2.7安装virtualenv(默认安装3.5,Dataflow无法使用python3)

 virtualenv env --python=python2

激活此虚拟环境后,您可以运行进入其中