【问题标题】:Airflow occasionally cannot find the local python moduleAirflow 偶尔找不到本地 python 模块
【发布时间】:2022-08-16 23:57:59
【问题描述】:

我通过导入我自己的 python 模块 pip install -e path 网络服务器以No module named 发出警告,并且无法直接导入 dag。

但是,刷新后,它有的导入dag成功,有的导入失败。 如果我执行它,则任务正在正常工作。

我该如何解决这个问题?

  • 您正在使用哪个版本的 Airflow?
  • 您在哪个基础架构上运行 Airflow ?
  • docker中的气流版本是2.2.2,我直接使用pip3将python包安装到同一个python内核

标签: python airflow


【解决方案1】:

您必须做的是将所有模块放在一个文件夹中,然后使用模块的值更改环境变量,例如。

  - name: PYTHONPATH
    value: "/opt/airflow/modules/"

请记住,对于您的包文件夹,您必须包含一个 __init__.py 文件

【讨论】:

  • 我应该把这个参数放在哪里?与我直接安装软件包有什么区别?
  • 啊。。我明白了。那么你没有使用kuberenetes。我们这样做的原因是因为我们通常不会像这样创建包,而是希望像简单的 python 模块一样使用它们,从而为它们提供路径。在您的情况下,您不需要它。谢谢
【解决方案2】:

我终于想通了。因为我使用的是 Jupyter Notebook,所以它会为我创建 .ipynb_checkpoints。 删除文件夹后,所有 dags 工作

【讨论】:

    【解决方案3】:

    也许您将模块安装在与气流使用的不同的 python 可执行文件中。要检查位置,请运行:

    airflow info

    结果,在系统信息部分,你会发现python_location.复制它的值并运行:

    <python_location> -m pip install <module>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 2014-10-26
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      • 2016-04-17
      • 2012-11-20
      相关资源
      最近更新 更多