依赖项

Airflow 额外依赖项

apache-airflow PyPI 基础包只安装入门所需的内容。可以根据您的环境需要安装其他软件包。例如,如果您不需要与 Postgres 连接,则不必费心安装 postgres-devel yum 软件包,或者您使用的发行版上的任何等效软件包。

大多数额外依赖项都链接到相应的提供程序包。例如,“amazon” 额外依赖项有一个相应的 apache-airflow-providers-amazon 提供程序包需要安装。当您使用此类额外依赖项安装 Airflow 时,将自动安装必要的提供程序包(这些软件包的最新 PyPI 版本)。但是,您可以独立于 Airflow 主安装自由升级和安装提供程序包。

有关额外依赖项及其启用功能的列表,请参阅:软件包额外依赖项参考

提供程序包

与 Apache Airflow 1.10 不同,Airflow 2.0 以多个独立但相互关联的软件包提供。Airflow 调度系统的核心作为 apache-airflow 软件包提供,大约有 60 个提供程序包可以单独安装,称为 Airflow 提供程序包。默认的 Airflow 安装没有很多集成,您必须自己安装它们。

您甚至可以为 Airflow 开发和安装自己的提供程序。有关更多信息,请参阅:提供程序包

有关提供程序包及其启用功能的列表,请参阅:提供程序包参考

额外依赖项和提供程序之间的区别

为了避免混淆额外依赖项和提供程序包:额外依赖项和提供程序是不同的东西,尽管许多额外依赖项会导致安装提供程序。

额外依赖项是标准的 Python setuptools 功能,允许将额外的依赖项集作为可选功能添加到“核心”Apache Airflow。此类可选功能之一是提供程序包,但并非 Apache Airflow 的所有可选功能都有相应的提供程序。

我们使用 extras setuptools 功能来安装提供程序包。大多数额外依赖项也与提供程序包链接(名称相同) - 例如,添加 [google] 额外依赖项也会添加 apache-airflow-providers-google 作为依赖项。但是,有些额外依赖项不会安装提供程序(例如 github_enterprisekerberosasync - 它们会添加一些额外的依赖项,这些依赖项是上述 Airflow 额外 功能所需的。以上三个示例分别添加了 GitHub Enterprise OAuth 身份验证、Kerberos 集成或 Gunicorn 的异步工作程序。这些都没有提供程序,它们只是使用新功能扩展了 Apache Airflow“核心”包。

系统依赖项

您需要满足某些系统级要求才能安装 Airflow。这些是已知 Linux Debian 发行版所需的要求。

Debian Bookworm (12)

Debian Bookworm 是我们开发和测试的首选平台。它是最新版本的 Debian 发行版,也是我们用于 CI/CD 系统的发行版。它也是我们推荐用于开发、测试和生产使用的发行版。

sudo apt install -y --no-install-recommends apt-transport-https apt-utils ca-certificates \
  curl dumb-init freetds-bin krb5-user libgeos-dev \
  ldap-utils libsasl2-2 libsasl2-modules libxmlsec1 locales libffi8 libldap-2.5-0 libssl3 netcat-openbsd \
  lsb-release openssh-client python3-selinux rsync sasl2-bin sqlite3 sudo unixodbc

Debian Bullseye (11)

Debian Bullseye 是之前的 Debian 发行版。Airflow 仍然支持它,我们也推荐将其用于生产环境,但是我们只在 CI 中构建镜像,并且不在那里运行任何测试(尽管我们预计不会出现问题)。在 Airflow 2.9 中,我们将停止为 Bullseye 构建镜像,并且只为 Bookworm 构建镜像并解释系统级依赖项。

sudo apt install -y --no-install-recommends apt-transport-https apt-utils ca-certificates \
  curl dumb-init freetds-bin krb5-user libgeos-dev \
  ldap-utils libsasl2-2 libsasl2-modules libxmlsec1 locales libffi7 libldap-2.4-2 libssl1.1 netcat \
  lsb-release openssh-client python3-selinux rsync sasl2-bin sqlite3 sudo unixodbc

如果您想使用这些数据库,还需要数据库客户端软件包(Postgres 或 MySQL)。

如果您使用其他发行版,则需要相应地调整命令。

此条目有帮助吗?