相关疑难解决方法(0)

2074
推荐指数
12
解决办法
100万
查看次数

气流 - Python文件不在同一个DAG文件夹中

我试图使用Airflow来执行一个简单的任务python.

from __future__ import print_function
from airflow.operators.python_operator import PythonOperator
from airflow.models import DAG
from datetime import datetime, timedelta


from pprint import pprint

seven_days_ago = datetime.combine(datetime.today() - timedelta(7),
                                  datetime.min.time())

args = {
    'owner': 'airflow',
    'start_date': seven_days_ago,
}

dag = DAG(dag_id='python_test', default_args=args)


def print_context(ds, **kwargs):
    pprint(kwargs)
    print(ds)
    return 'Whatever you return gets printed in the logs'

run_this = PythonOperator(
    task_id='print',
    provide_context=True,
    python_callable=print_context,
    dag=dag)
Run Code Online (Sandbox Code Playgroud)

如果我尝试,例如:

气流测试python_test打印2015-01-01

有用!

现在我想把我的def print_context(ds, **kwargs)函数放在其他python文件中.所以我创建了名为:simple_test.py的antoher文件并更改:

run_this = PythonOperator(
    task_id='print',
    provide_context=True,
    python_callable=simple_test.print_context,
    dag=dag)
Run Code Online (Sandbox Code Playgroud)

现在我尝试再次运行:

气流测试python_test打印2015-01-01

好的!它仍然有效!

但是,如果我创建一个模块,例如,带有文件的worker模块 …

python celery celery-task airflow

17
推荐指数
3
解决办法
2万
查看次数

如何打包和分发python程序(.py源代码),以便其他开发人员可以轻松安装所有必需的依赖项?

我正在开发一个Python应用程序,它构建了一些我用pip安装的软件包,例如Flask,requests,PIL.

那么如何分发我的程序以便其他人可以轻松地安装每个必需的依赖项/包并简单地使它在每台计算机上运行?是setup.py我在寻找什么或根本没有?如果是这样,你能否解释它的作用并提供一个示例setup.py来做我正在尝试做的事情?

PS:我也有这个小问题:我需要在程序的顶级文件夹中提供__init__.py,还是只在子目录中?

python deployment pip python-module python-3.x

1
推荐指数
1
解决办法
2124
查看次数