Ошибка установки Airflow 2.2.0: версии пакетов имеют противоречивые зависимости cattrs

#failed-installation #airflow-2.x

Вопрос:

Я получаю ошибку ниже, пытаясь выполнить шаги по установке на https://airflow.apache.org/docs/apache-airflow/stable/installation/installing-from-pypi.html

 ERROR: Cannot install apache-airflow[celery]==2.2.0 because these package versions have conflicting dependencies.

The conflict is caused by:
    apache-airflow[celery] 2.2.0 depends on cattrs<1.7.0 and ~=1.1; python_version > "3.6"
    The user requested (constraint) cattrs==1.0.0

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
 

Ответ №1:

Я сделал копию https://raw.githubusercontent.com/apache/airflow/constraints-2.2.0/constraints-3.6.txt файл в моем текущем рабочем каталоге локально и изменил «cattrs==1.0.0» на «cattrs==1.1.0»

а затем использовал приведенную ниже команду для установки

 pip3 install --force-reinstall "apache-airflow[celery]==2.2.0" --constraint constraints.txt
 

Редактировать: позже я понял, что проблема возникла из-за использования неправильной версии файла ограничений. У меня на компьютере был установлен Python 3.8, когда я использовал constraints-3.6.txt вместо constraints-3.8.txt

Правильная команда должна быть такой, как показано ниже:

 pip3 install "apache-airflow[celery]==2.2.0" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"