Первая установка Apache Сбой воздушного потока - отсутствует Python .h - PullRequest
0 голосов
/ 11 февраля 2020

Я попытался установить Airflow с помощью этой команды и получил сообщение об ошибке.

#pip3 install apache-airflow[postgres,gcp,aws,celery]

Я точно следовал инструкциям по установке, что здесь пошло не так?

https://airflow.apache.org/docs/stable/installation.html

... a long list of successful feedback, and then this:

building 'psutil._psutil_linux' extension
creating build/temp.linux-x86_64-3.6
creating build/temp.linux-x86_64-3.6/psutil

gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=567 -DPSUTIL_LINUX=1 -I/usr/include/python3.6m -c psutil/_psutil_common.c -o build/temp.linux-x86_64-3.6/psutil/_psutil_common.o

    psutil/_psutil_common.c:9:10: fatal error: Python.h: No such file or directory
    #include <Python.h>
                  ^~~~~~~~~~
    compilation terminated.
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
    Command "/usr/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-1jwpvsnq/psutil/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-ni_brusw-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-1jwpvsnq/psutil/

Инструкции по установке для Airflow с использованием Postgres в качестве внутреннего интерфейса неверны.

Apache В документации Airflow неясно, как установить и настроить Airflow с Postgres в качестве бэкэнда.


Я установил с:

pip install apache-airflow[postgres]

Сейчас что?

В инструкции по установке есть ссылка на "Инициализация базы данных базы данных"

Я нажимаю там. Он имеет следующую строку:

If you decide to use Postgres, we recommend using the psycopg2 driver and specifying it in your SqlAlchemy connection string.

ОК, поэтому я `pip install psychopg2 ', этого достаточно, чтобы удовлетворить рекомендацию по использованию драйвера' psycopg2 '?

И теперь, где же моя строка подключения SqlAlchemy? Где находится строка SqlAlchemy? какой файл? Я нигде не вижу файлов.


Теперь там написано:

Also note that since SqlAlchemy does not expose a way to target a specific schema in the Postgres connection URI, you may want to set a default schema for your role with a command similar to ALTER ROLE username SET search_path = airflow, foobar;

Что это значит?

Означает ли это, что я должен создать роль / имя пользователя для использования Airflow / SqlAlchemy?

И если так, какое имя пользователя будет хорошим? ('airflow'?)


И где мне установить Postgres URI соединения и какой именно будет синтаксис?

Инструкции по установке, кажется, подсказывают использование слово "может захотеть" , а затем не дает никаких подробностей о том, как следовать этим советам.


Я не думаю, что в инструкциях по установке должны использоваться формулировки, которые указывают на предложения, я просто Я хочу пошаговые инструкции о том, как заставить это работать.


Затем говорится:

Once you’ve setup your database to host Airflow

Как я настроил свою базу данных для размещения Airflow? Что я там делал, чтобы достичь этой цели?


Тогда там написано:

you’ll need to alter the SqlAlchemy connection string located in your configuration file $AIRFLOW_HOME/airflow.cfg

Я нигде не вижу airflow.cfg - его нигде нет.


Затем говорится:

You should then also change the “executor” setting to use “LocalExecutor”, an executor that can parallelize task instances locally.

Что это значит?


В этот момент говорится:

# initialize the database
airflow initdb

Я не думаю, что мне следует запускать это на этом этапе, потому что я понятия не имею, о чем говорилось в предыдущих инструкциях.


Если то, что должно быть очень простой документацией, это плохо, я не могу представить, как выглядит код.

1 Ответ

1 голос
/ 13 февраля 2020

В этой части вашего сообщения об ошибке указывается, что вам не хватает файлов python заголовков (.h):

gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=567 -DPSUTIL_LINUX=1 -I/usr/include/python3.6m -c psutil/_psutil_common.c -o build/temp.linux-x86_64-3.6/psutil/_psutil_common.o

    psutil/_psutil_common.c:9:10: fatal error: Python.h: No such file or directory
    #include <Python.h>
                  ^~~~~~~~~~
    compilation terminated.
    error: command 'gcc' failed with exit status 1

Информацию об установке заголовков вы найдете здесь: У меня есть Python в моей системе Ubuntu, но g cc не может найти Python .h

...