首页 > 解决方案 > 使用 setup.py 在数据流中运行 apache Beam 作业时出现 ModuleNotFoundError

问题描述

我有一个 apache 光束管道,我曾经提交给谷歌数据流,它运行成功。随着时间的推移,我的代码不断增长,我想将它构建成多个文件依赖项。这就是为什么我提到 apache beam 部分Multiple File Dependencies

当我按如下方式构建我的代码时:

​root_dir/
  ​setup.py
  ​main.py
  __init__.py
  ​extract/
    __init__.py
    extract.py

当我在本地执行它时,它运行良好,当我将它提交到数据流时,我收到以下错误:

ModuleNotFoundError: No module named 'extract'

我的 setup.py 看起来像这样:

from setuptools import setup, find_packages

setup(
    name="g_dataflow",
    version="0.1.0",
    install_requires=[
        'google-cloud-storage==1.42.0'
    ],
    packages=find_packages()

)

我试图通过 apache beam 遵循 Juliaset 示例,但没有成功。有没有人遇到过同样的问题?

标签: pythongoogle-cloud-dataflowapache-beam

解决方案


我不得不添加--save_main_session到我的命令行,这解决了这个问题


推荐阅读