【发布时间】:2018-01-03 14:51:32
【问题描述】:
我有一个关于 python 运算符中使用的包的依赖管理的小问题
我们在工业化模式下使用气流来运行预定的 python 作业。它运行良好,但我们面临处理每个 DAG 所需的不同 python 库的问题。
您是否知道如何让开发人员为他们的工作安装自己的依赖项,而无需成为管理员并确保这些依赖项不会与其他工作发生冲突?
您是否建议在作业开始时加载一个虚拟环境的 bash 任务?有什么官方建议吗?
谢谢! 罗曼。
【问题讨论】:
-
我认为您的问题需要大量澄清。你是什么意思“在python运算符中”? Python 中的“运算符”通常指特定符号,如
+、-、in等及其语义。 airflow 的“工业化模式”是什么?谷歌没有发现任何东西,所以我怀疑这不是标准术语。 -
我也怀疑你的问题太宽泛了。我在这里没有看到具体的、可解决的问题。您正在寻求开放式建议或技术建议。这种类型的问题通常不适合 SO。也就是说,您会发现 SE 社区的大多数成员都认为管理员权限是进行开发工作的要求,因此这种要求并不常见。对于您的实际问题,像 Docker 这样的技术是避免 Linux 上的软件冲突的标准解决方案。 virtualenv 可以为非本地 Python 包这样做。通常由开发人员设置每个项目。
-
@jpmc26 它在 apache-airflow 的上下文中是有意义的——它被标记了。 Airflow 有包括
PythonOperatorairflow.readthedocs.io/en/stable/… 在内的运算符,定义了数据管道中的一个步骤。通常将 Airflow 用于例如训练机器学习模型或在不同的步骤中运行不同的 python 版本,所以正如你所说的 venvs 或容器很适合,或者只是调用外部系统。 Q 不是太宽泛,挑战在于如何允许数据科学家(这里的“开发人员”)运行具有冲突 deps 的任意 python。
标签: python airflow apache-airflow