【问题标题】:Install Python packages in dataflow job在数据流作业中安装 Python 包
【发布时间】:2021-02-26 23:31:22
【问题描述】:

在我的数据流 (beam) 工作流程中,我使用 Python 中的 datetime 包(在 gcp 上使用 jupyter notebook)。当我使用 pip 安装缺少的软件包时,一切正常。

现在我想在 gcp 上将我的转换作为数据流作业运行。

我总是收到错误“NAME ERROR”,因为日期时间未知(当我使用适用于 Python 的 Apache Beam SDK 时出现此错误)谁能给我提示如何将 Python 包添加到数据流作业?

我使用的是 setup.py 文件,但它不起作用。

【问题讨论】:

  • 我为此使用了 setup.py 文件,它对我有用。您能否添加用于运行数据流的命令和不适合您的 setup.py 文件。
  • 另外,datetime是唯一失败的导入吗?如果是这样,这不是 python 包错误,因为datetime 是标准库的一部分,这意味着它始终存在。

标签: python dataflow


【解决方案1】:

感谢您的回答,这是我的setup.py 文件 f.e 的一部分。如果我必须安装一些额外的软件包 f.e. lxml

CUSTOM_COMMANDS = [
    ['sudo', 'apt-get', 'update'],
    ['sudo', 'apt-get', 'install', 'python3-lxml'],
    ['sudo', 'apt', 'install', 'python3-pip'],
    ['pkg', 'install', 'libxml2', 'libxslt']
    ]

我的问题:

  1. 对于标准 python 包 f.e.日期时间我不需要 requirements_file?
  2. 如果我必须安装 f.e. lxml(它不是标准包)我需要一个 requirements_file 和一个 setup_file 吗?
  3. 当我必须安装 f.e. 时,安装文件的外观如何? lxml 因为我需要一些额外的 linux 包来运行pip install lxml
  4. 在 Dataflow 作业中,容器使用的操作系统是什么? (因为安装附加包的命令不同)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2019-06-06
    • 1970-01-01
    相关资源
    最近更新 更多