Installation from PyPI

This page describes installations using the apache-airflow-ctl package published in PyPI.

Installation tools

Only pip installation is currently officially supported.

Note

While there are some successes with using other tools like poetry or pip-tools, they do not share the same workflow as pip - especially when it comes to constraint vs. requirements management. Installing via Poetry or pip-tools is not currently supported. If you wish to install airflow using those tools you should use the constraints and convert them to appropriate format and workflow that your tool requires.

There are known issues with bazel that might lead to circular dependencies when using it to install Airflow. Please switch to pip if you encounter such problems. Bazel community works on fixing the problem in this PR so it might be that newer versions of bazel will handle it.

Typical command to install airflowctl from scratch in a reproducible way from PyPI looks like below:

pip install "apache-airflow-ctl==|version|"

Those are just examples, see further for more explanation why those are the best practices.

Note

Generally speaking, Python community established practice is to perform application installation in a virtualenv created with virtualenv or venv tools. You can also use uv or pipx to install Airflow in application dedicated virtual environment created for you. There are also other tools that can be used to manage your virtualenv installation and you are free to choose how you are managing the environments. Airflow has no limitation regarding to the tool of your choice when it comes to virtual environment.

The only exception where you might consider not using virtualenv is when you are building a container image with only Airflow installed - this is for example how Airflow is installed in the official Container image.

Was this entry helpful?