我正在尝试使用flowers-sample中包含的预处理脚本(我看到它今天已被修改,并且不再被弃用)。 但是,在安装所需的软件包之后,管道将失败并输出这些错误日志
(caeb3b0a930d0a6): Workflow failed. Causes: (caeb3b0a930d587): S01:Save to disk/Write/WriteImpl/InitializeWrite failed.
和
(d50acb0dd46c44c6): Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py", line 666, in run
self._load_main_session(self.local_staging_directory)
File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py", line 411, in _load_main_session
pickler.load_session(session_file)
File "/usr/local/lib/python2.7/dist-packages/apache_beam/internal/pickler.py", line 230, in load_session
return dill.load_session(file_path)
File "/usr/local/lib/python2.7/dist-packages/dill/dill.py", line 363, in load_session
module = unpickler.load()
File "/usr/lib/python2.7/pickle.py", line 858, in load
dispatch[key](self)
File "/usr/lib/python2.7/pickle.py", line 1090, in load_global
klass = self.find_class(module, name)
File "/usr/local/lib/python2.7/dist-packages/dill/dill.py", line 423, in find_class
return StockUnpickler.find_class(self, module, name)
File "/usr/lib/python2.7/pickle.py", line 1124, in find_class
__import__(module)
ImportError: No module named util
我从两个不同的Google Compute Engines运行这个过程时遇到了同样的错误,我已经安装了requirements.txt中列出的软件包。
是否引用了培训师目录中的util.py
文件,否则,我是否应该安装其他软件包以避免此错误?
答案 0 :(得分:1)
我找到了一种解决方法:在preprocess.py
中,我已将[{1}}包的导入替换为util
中包含的get_cloud_project()
定义。
我不知道问题是否是由数据流上使用的本地包引起的。我认为不是这种情况,因为在管道定义中没有调用util.py
,但这是我第一次使用数据流。
如果其他人知道是否可以在不修改代码的情况下使代码工作,请告诉我!