如何在启动气流Websever时解决“错误:没有名为'airflow.www'的模块”

时间:2018-12-02 19:09:15

标签: airflow

启动Airflow Web服务器时出现以下错误

balajee@Balajees-MacBook-Air.local:〜$ airflow网络服务器-p 8080 [2018-12-03 00:29:37,066] { init .py:51}信息-使用执行程序SequentialExecutor

[2018-12-03 00:29:38,776] {models.py:271}信息-从/ Users / balajee / airflow / dags填充DagBag 使用以下命令运行Gunicorn服务器: 工人:4个同步 主持人:0.0.0.0:8080 超时:120

日志文件:--

错误:没有名为“ airflow.www”的模块

9 个答案:

答案 0 :(得分:3)

为我固定

pip3 uninstall -y gunicorn
pip3 install gunicorn==19.4.0

答案 1 :(得分:1)

我针对发生的问题执行了以下步骤:

  1. 仅为气流创建一个单独的virtualenv(我使用anaconda分发版)
  2. 使用conda activate激活此环境
  3. 安装气流:pip install apache-airflow
  4. 此刻为我显示了错误No module named 'airflow.www'

要修复,请按照以下步骤操作:

  1. whereis gunicorn
  2. 中查找您的枪支弹药在哪里
  3. gunicorn仅需保留在您的virtualenv目录中:/home/yourname/anaconda3/envs/airflow_env/bin/gunicorn
  4. 如果它保留在两个目录中,请使其放在您的气流环境中。将其全部删除。

另一种验证gunicorn是否在其他目录中的方法是打印PATH变量:echo $PATH。在/home/yourname/.local/bin和PATH中的另一个anaconda目录中查找gunicorn。删除所有引用。还要从conda base env中删除枪色豆:pip uninstall gunicorn

通过此步骤,我认为您的问题将得到解决。

我使用anaconda发行版,但我认为没有它也可以完成相同的过程。我使用了气流1.10.0和python 3.6。

答案 2 :(得分:0)

您好像对gunicorn有问题。 尝试执行以下两个命令:

sudo -H pip3 uninstall -y gunicorn
sudo -H pip3 install gunicorn

它应该可以解决您的问题,导致气流向您显示不清晰的错误消息,与枪支问题有关

答案 3 :(得分:0)

今天早上我遇到了这个问题,我找到了一个奇怪的解决方案,可能对您有帮助。我想也许您只是需要更改命令运行目录
在PyCharm帮助下,我在airflow目录virtualenv中安装了venv基本依赖项,并使用PyCharm内置的Terminal标签直接访问了我的venv,并且我使用airflow initdb初始化sqlite数据库来存储我的所有日​​志和操作,然后根据官方教程使用airflow webserver启动Web服务器。但是今天不知何故,我使用我的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

然后我通过重新安装gunicorn来尝试@Evgeniy Sobolev的解决方案,但没有做任何更改,但是当我仍然使用PyCharm Terminal时,它仍然可以成功运行。我猜可能是因为 first directory 您初始化数据库并且运行Web服务器至关重要。默认情况下,当我使用PyCharm Terminal初始化db并启动webserver时,是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',因此我签出目录,并且Web服务器像PyCharm Terminal一样成功运行:

(venv) root@root:~/GitHub/FakeProject/SubDir$ cd ..
(venv) root@root:~/GitHub/FakeProject$ airflow webserver
** It works **

我认为气流可能会在首次启动气流数据库时存储一些元数据(例如,设置PATH),因此您无法更改命令运行目录。
我希望它将来可以对某人有所帮助。 只需检查您的目录!

答案 4 :(得分:0)

如果您在安装过程中为气流定义了一个自定义主目录,而不是默认目录(~/airflow):

  1. 您需要首先导出自定义路径:
export AIRFLOW_HOME=/your/custom/path/airflow
  1. 转到气流目录,然后运行网络服务器
airflow webserver -p 8080
  1. 也运行调度程序
airflow scheduler

答案 5 :(得分:0)

请检查服务器中是否已经安装了gunicorn。对我来说,它安装在/ usr / local / bin中,并且优先于通过气流安装的gunicorn版本。卸载较早的版本或修复$ PATH变量

答案 6 :(得分:0)

我通过从气流文件夹本身启动网络服务器解决了这个问题。

我之前尝试从主目录打开服务器,但找不到所需的模块,这可能就是这种情况。

聚会迟到,但可以帮助到这里的其他人。

答案 7 :(得分:-1)

我今天遇到了同样的错误,一个sudo帮了我大忙

答案 8 :(得分:-1)

我添加了sudo,它实际上可以正常工作。