我正在尝试将本地模块( python脚本)导入到我的DAG中。
目录结构:
airflow/
├── dag
│ ├── __init__.py
│ └── my_DAG.py
└── script
└── subfolder
├── __init__.py
└── local_module.pyMy_DAG.py中的示例代码:
#trying to import from local module
from script.subfolder import local_module
#calling a function in local_module.py
a = some_function() 我在气流中出现了一个错误,上面写着“坏掉的DAG: my_DAG。没有一个模块名为'local_ module‘。”
我已经更新了空气流量为1.9.0,但这并不能解决问题。
谢谢。
发布于 2018-05-03 11:00:49
这通常与气流的配置有关。
在airflow.cfg中,确保airflow_home中的路径被正确地设置为气流目录结构所在的路径。
然后气流扫描所有子文件夹并填充它们,以便可以找到模块。
否则,只需确保要导入的文件夹位于Python:How to use PYTHONPATH中。
发布于 2018-08-23 16:16:25
我的做法如下:
现在,您可以在PythonOperator中使用此脚本
import sys
sys.path.insert(0,"/root/airflow/dags/subfolder"))
import subfolder.script_name as script
...
t1=PythonOperator(
task_id='python_script',
python_callable=script.main,
dag=dag
)发布于 2021-07-26 09:41:49
如果您在码头中运行Airlow,那么您需要这样做:
import sys
sys.path.append('/opt/airflow/dags/programs/my_module')
import my_module
task1 = PythonOperator(
task_id='my_task_name',
python_callable=my_module.my_func,
dag=dag,
)https://stackoverflow.com/questions/50150384
复制相似问题