我正在为数据科学家团队建立一个多用户气流集群,其中包括DAG(ETL,NLP,ML,NN ……)的各种用法,其中一些具有特定的python依赖性.

我不能简单地在系统级添加所有DAG依赖项.当然,我可以设置常用的基线,但是对于特定的需求,依赖于压缩的DAG功能会非常有帮助.

因此,为了解决这个多上下文问题,我正在测试Airflow 1.9.0的packaged DAG功能(在Ubuntu 16.04上).

我正在按照这个例子用任意的pypi包来测试它.

>我随机选择了一个python模块(python-crontab). (在此之前,我尝试使用更强大的模块,但重现测试需要更长的时间)

>测试场景:能够导入该模块并在压缩的DAG中打印其版本

>这是我做的方式:

$virtualenv venv --python=python3

$source venv/bin/activate

(venv) $mkdir contents && cd contents

$pip install --install-option="--install-lib=$PWD" python-crontab

$cp ../my_dag.py .

$zip -r ../test_zip_2.zip *

$cp ../test_zip_2.zip /path/to/dags

$journalctl -f -u airflow-scheduler.service

(...)

WARNING - No viable dags retrieved from /path/to/dags/test_zip_2.zip

>我的DAG的内容:

import crontab

import airflow.utils.dates as a_dates

from airflow.operators.python_operator import PythonOperator

from airflow.operators.dummy_operator import DummyOperator

from airflow.models import DAG

from pprint import pprint

args = {

'owner': 'airflow',

'start_date': a_dates.days_ago(1)

}

def print_context(ds, **kwargs):

pprint(kwargs)

print(ds)

print(crontab.__version__)

return 'Whatever you return gets printed in the logs'

with DAG(dag_id='test_zip', default_args=args, schedule_interval=None) as dag:

(

PythonOperator(

task_id='print_the_context',

provide_context=True,

python_callable=print_context,

)

>> DummyOperator(

task_id='do_nothing'

)

)

检查the code后,如果找到不包含单词“DAG”和“airflow”的.py文件,则解析ZIP文件的逻辑会立即退出.

问题是,我上面描述的方法实际上是在归档的根目录下生成其他.py文件.

$ll

total 100

drwxr-xr-x 1 vagrant vagrant 442 Jun 1 14:48 ./

drwxr-xr-x 1 vagrant vagrant 306 Jun 1 15:30 ../

-rw-rw-r-- 1 vagrant vagrant 3904 Dec 30 2015 cronlog.py

-rw-rw-r-- 1 vagrant vagrant 44651 May 25 16:44 crontab.py

-rw-rw-r-- 1 vagrant vagrant 4438 Dec 28 2015 crontabs.py

drwxr-xr-x 1 vagrant vagrant 476 Jun 1 14:26 dateutil/

-rw-r--r-- 1 vagrant vagrant 6148 Jun 1 14:24 .DS_Store

drwxr-xr-x 1 vagrant vagrant 204 Jun 1 14:26 __pycache__/

drwxr-xr-x 1 vagrant vagrant 272 Jun 1 14:26 python_crontab-2.3.3-py3.5.egg-info/

drwxr-xr-x 1 vagrant vagrant 306 Jun 1 14:26 python_dateutil-2.7.3-py3.5.egg-info/

drwxr-xr-x 1 vagrant vagrant 238 Jun 1 14:26 six-1.11.0-py3.5.egg-info/

-rw-rw-r-- 1 vagrant vagrant 30888 Sep 17 2017 six.py

-rw-r--r-- 1 vagrant vagrant 832 Jun 1 14:48 my_dag.py

我测试的许多知名软件包都会生成这些顶级.py文件.例如.安装scrapy,numpy,pandas等产生同样的混乱.

那么,可能是我的选择(没有分流气流^ _ ^)?

我是否正确理解此功能?

谢谢你的帮助!

python压缩包怎么安装-python – 如果安装的模块在zip文件的顶层添...相关推荐

  1. 下载python压缩包并使用setup.py安装

    环境:win10.python3.6.anaconda3 问题:使用pip install pp (pp是parallel包)或者使用pip安装其他包时可能会因为网络等原因下载失败. 解决: 去官网下 ...

  2. python的pptx文档_通过python-pptx模块操作ppt文件

    ppt通过其精美的可视化技巧以及良好的演示效果,成为了职场人士的必备技能.ppt的设计是一门大学问,无论是设计技巧,还是操作方法,都衍生出了专门的课程. 本文主要介绍python操作ppt的技巧,编程 ...

  3. python解压版使用_【Python】使用 zipfile 解压含有中文文件名的 zip 文件

    问题 在使用 Python 内置标准库 zipfile 解压文件时,如果压缩文件中有的文件含有中文,那么解压后就会发现文件名中的中文部分是乱码.例如我分别新建三个 txt 文件:文件1.txt,文件2 ...

  4. ARM安装python模块

    ARM机器安装python模块绝对不不不不可以直接pip!!! 这里演示的是CentOS,其他linux系统类似. Step1.安装必备 yum install epel-release yum in ...

  5. Python zipfile:高效处理 ZIP 文件(翻译)

    zipfile 可以很方便地读取.写入.提取zip文件.如果在日常工作中经常需要将某些文件打包到zip,不妨试试用它实现一定程度的自动化办公.另外 Python 的 Zip imports 也是一个有 ...

  6. python高中教材-高中Python校本课程的设计与实施

    郑兴航 2018年1月,新版高中信息技术课程标准正式颁布,对照2003版,新标准在课程目标和课程内容上都有了很大变化,编制准确反映课程标准理念的教材的难度大大增加.新课程标准配套教材目前尚未推出,随着 ...

  7. python打开zip文件_Python操作Zip文件

    Python操作Zip文件 需要使用到zipfile模块 读取Zip文件 随便一个zip文件,我这里用了bb.zip,就是一个文件夹bb,里面有个文件aa.txt. import zipfile # ...

  8. Python操作Zip文件

    Python操作Zip文件 需要使用到zipfile模块 读取Zip文件 随便一个zip文件,我这里用了bb.zip,就是一个文件夹bb,里面有个文件aa.txt.

  9. python暴力破解Zip文件,就是不讲道理

    本次实验将带领大家用Python的zipfile模块实现Zip文件的暴力破解,涉及的知识点包括:zipfile.argparse的用法等等. 一.实验说明 1. 实验简介 我们在网上好不容易下载到一个 ...

最新文章

  1. java十进制输出_JAVA输入一个十进制数N,输出r进制的数
  2. 4.Hadoop的学习(Hadoop的安装及环境变量的配置)
  3. 无法定位序数于动态库mfc90d.dll上 由于应用程序配置不正确...解决方法
  4. 套接字的作用与一般使用_05 | 使用套接字进行读写
  5. JSTL fmt 标签 使用
  6. vue + vue-router +axios + element UI + PHP + CodeIgniter + Mysql 项目管理系统
  7. 测试日照强度的软件,日照分析软件FastSUN - 飞时达软件
  8. solidworks电气元件3d库_60套机械设计三维选型软件 非标自动化 电气选型SolidWorks标准件...
  9. 「运维有小邓」如何避免企业AD域弱密码
  10. 创建Allegro差分对
  11. 如何使用报表工具制作条形码报表
  12. 33、Python第三方库安装和使用
  13. DAMO-YOLO | 超越所有YOLO,5行代码即可体验
  14. clk子系统 - 驱动框架
  15. Cramer-Rao Lower Bound的推导
  16. mp4转换成gif无损画质,MP4转换gif一键搞定
  17. python cox回归_数据分析|回归分析(RPython)
  18. 用c语言编写心里测试,写了个心理测试的c程序(*^__^*) 嘻嘻……
  19. 如何启用服务器的TCP IP协议,本地联接的属性里的TCP/IP协议被禁用,怎么开启啊?...
  20. 1.《自学大全》 -读书猴(未完待续)

热门文章

  1. DataGridView 单元格自动填充
  2. 文本比较算法Ⅴ——回顾贴,对前面几篇文章的回顾与质疑
  3. CSS深入理解之margin
  4. JS判断是否是移动设备进行http链接重定向
  5. 代理(Proxy)及常见示例
  6. 通过mongodb客户端samus代码研究解决问题
  7. python编程语言是什么-Python是一种什么样的编程语言?解释?编译?汇编?机械?...
  8. python3菜鸟教程-Python3 快速入门教程
  9. python使用什么注释语句和运算-Python3 注释和运算符
  10. python课程推荐-推荐几个优质的 Python 学习资料(良心推荐,非广告)