在使用Airflow的情况下,我有一个用python编写的主应用程序,其中有一些代码需要我放入Airflow中的DAG。
__main__.py
的独立应用。现在我来自Java世界,可以通过创建适当的jar来解决此类问题……但是在python中,我想知道什么是推荐的解决方案。
我的想法是拥有这样的结构:
common/
__init__.py
lib1.py
lib2.py
...
theApp/ #standalone app
__init__.py
__main__.py
app.py <-- does use common.lib1.py
theOtherApp/ #airflow stuff with DAGs
__init_.py
script1.py <-- does use common.lib1.py
但是我有以下疑问:
theApp
可以像TheApp一样直接被调用,但是我如何解决它的共同之处?common
和theOtherApp
?答案 0 :(得分:1)
您的第二个问题是“是”,但不是您的结构方式。您将把common和theApp目录都复制到theOtherApp,因为theOtherApp需要它们
您的第一个问题是,您可以将common放置在python路径的Lib路径中或将common复制到App目录中
我没有使用Airflow,但如果它能够运行python,我确定它们将是python Lib路径,您可以在其中包含您的常用内容,然后在theApp和TheOtherApp中导入