Airflow 气流DAG无法导入根文件夹中的模块

Airflow 气流DAG无法导入根文件夹中的模块,airflow,Airflow,我有以下文件夹结构 airflow/ |_dag/ airflow/ |_dag/ | |_ mydag.py | |_myprojects/ |_projectone/ | |_tasks/ | |_ mytask.py |_projecttwo/ |_tasks/

我有以下文件夹结构

airflow/
     |_dag/
airflow/
    |_dag/
    |   |_ mydag.py
    |
    |_myprojects/
           |_projectone/
           |      |_tasks/
           |           |_ mytask.py
           |_projecttwo/
                  |_tasks/
                      |_ mytask.py

据我所知,airflow使用“airflow”文件夹作为根目录,即我假设放置在“airflow”中的所有内容都可以导入

假设我有不同的项目,任务放在以下结构中

airflow/
    |_dag/
    |   |_ mydag.py
    |
    |_myprojects/
           |_projectone/
           |      |_tasks/
           |           |_ mytask.py
           |_projecttwo/
                  |_tasks/
                      |_ mytask.py

然后我假设我在
mydag.py
中应该能够从给定的项目导入
mytask
,比如

#mydag.py
从myprojects.projectone导入任务
但是我得到了一个
DAG导入错误;ModuleNotFoundError:没有名为“myprojects”的模块

这是可行的,还是我应该(以某种方式)改变PYTHONPATH的气流(在这种情况下,在哪里完成?)


注意,我已在文件夹中创建了
\uuu init\uuuuuuy.py
文件。

一个选项是在导入
myproject
之前设置路径:

#mydag.py
导入系统
#在导入“myproject”之前插入路径非常重要`
系统路径插入(0,“…”)
从myproject导入任务
第二个选项是将myproject移动到dag文件夹下:

airflow
   +-- dag
        +--- myproject
第三个选项是将一些逻辑移到
plugins/
文件夹中


我会试一试——但这是如何/为什么起作用的?气流不使用“气流”作为根文件夹吗?顺便说一句,我已经更新了这个问题,因为我写的内容不完全正确(我可能在开始时简化得太多),我只得到了一个
sys.path.insert(“…”,0);TypeError:“str”对象不能解释为整数
sys。路径
包含模块的搜索路径列表
myproject
是一个模块,因此我们只需预先设置myproject的路径`<代码>类型错误:“str”对象不能解释为整数。忘记了参数的顺序。0必须是第一个(将更新答案)。
insert
list