Сегодня утром у меня возникла эта проблема, и я нашел странное решение, может оно вам поможет.Я думаю, может быть, вам просто нужно изменить директорию запуска команды .
Я устанавливаю базовую зависимость airflow
в моем каталоге virtualenv
venv
с помощью PyCharm, и я использую встроенную PyCharm *Вкладка 1007 * для прямого доступа к моему venv
, и я использую airflow initdb
для инициализации базы данных sqlite для хранения всех своих журналов и операций, затем в соответствии с официальным руководством я использую airflow webserver
для запуска веб-сервера.Но сегодня каким-то образом я использую свой терминал Mac, запускаю virtulenv и запускаю веб-сервер airflow, и я сталкиваюсь с этой проблемой:
Running the Gunicorn Server with:
Workers: 4 sync
Host: 0.0.0.0:8080
Timeout: 120
Logfiles: - -
=================================================================
Error: No module named 'airflow.www'
[2019-05-26 07:45:27,130] {cli.py:833} ERROR - No response from gunicorn master within 120 seconds
[2019-05-26 07:45:27,130] {cli.py:834} ERROR - Shutting down webserver
И я попробовал решение @Evgeniy Sobolev, переустановив gunicorn
, и ничего не изменилось,но когда я все еще использую свой терминал PyCharm, он все еще может успешно работать.Я думаю, возможно, это потому, что first directory
, который вы инициализируете в своей базе данных, и работающий веб-сервер имеет решающее значение.По умолчанию, когда я использую PyCharm Terminal для инициализации БД и запуска веб-сервера, это Project root directory
, например:
(venv) root@root:~/GitHub/FakeProject$ airflow webserver
Но сегодня я проверяю venv
, чтобы запустить virtualenv, и корневой каталог изменился!
root@root:~/GitHub/FakeProject/SubDir$ source venv/bin/activate
(venv) root@root:~/GitHub/FakeProject/SubDir$ airflow webserver
** Error **
Таким образом, он встречает Error: No module named 'airflow.www'
, поэтому я проверяю каталог, и веб-сервер работает успешно, как PyCharm Terminal:
(venv) root@root:~/GitHub/FakeProject/SubDir$ cd ..
(venv) root@root:~/GitHub/FakeProject$ airflow webserver
** It works **
IЯ подумал, что, возможно, airflow сохранит некоторые метаданные (например, настройку PATH) при первом запуске вашей базы данных airflow, так что вы не можете изменить каталог запуска команды.
Я надеюсь, что это может кому-нибудь помочь в будущем. Просто проверьте ваш каталог!