Airflow 将自定义python模块导入dag文件而不混合dag环境和sys.path?

Airflow 将自定义python模块导入dag文件而不混合dag环境和sys.path?,airflow,Airflow,有没有办法在不混合dag环境和sys.path的情况下将自定义python模块导入dag文件?不能用像这样的东西 environ[“PROJECT_HOME”]=“/path/to/some/PROJECT/files” #导入某些项目文件 sys.path.append(environ[“PROJECT_HOME”]) 导入mymodule 因为sys.path是在所有dag之间共享的,这会导致(例如,dag定义之间的值共享)如果想要从不同的地方导入不同dag定义具有相同名称的模块(如果有许

有没有办法在不混合dag环境和sys.path的情况下将自定义python模块导入dag文件?不能用像这样的东西

environ[“PROJECT_HOME”]=“/path/to/some/PROJECT/files”
#导入某些项目文件
sys.path.append(environ[“PROJECT_HOME”])
导入mymodule
因为
sys.path
是在所有dag之间共享的,这会导致(例如,dag定义之间的值共享)如果想要从不同的地方导入不同dag定义具有相同名称的模块(如果有许多dag,这很难跟踪)

使用的文档(看起来像是一个解决方案)似乎并没有避免这个问题

zip文件将插入模块搜索列表(sys.path)的开头,因此它将可用于驻留在同一解释器中的任何其他代码

有谁知道如何处理这种情况吗


*与“链接到问题”不同的是,该问题的实施不太具体

结果是这样做的:

如果os.path.isfile(“%s/path/to/specific/module/%s.py”%(PROJECT\u HOME,file\u name)):
进口小商品
f=imp.load\u source(“自定义模块”,%s/path/to/specific/module/%s.py”%(项目主目录,文件名))
df=f.myfunc(sparkSession,df)
根据SO post从已知路径显式获取所需的模块文件