我正在尝试运行在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 Cloud中设置环境或默认情况下完成设置?
答案 0 :(得分:1)
最后我做到了。
方法如下:
在Google Cloud中使用python 2.7安装virtualenv(默认情况下已安装3.5,Dataflow无法使用python3)
virtualenv env --python=python2
激活此virtualenv后,您可以在其中运行