V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
CtheSky
V2EX  ›  分享创造

分享一个命令行终端的 Python 脚本执行工具

  •  3
     
  •   CtheSky · 2019-11-13 12:12:06 +08:00 · 4246 次点击
    这是一个创建于 1856 天前的主题,其中的信息可能已经有所发展或是发生改变。

    平时总是有很多脚本要跑。这些脚本执行的时候有先后的依赖关系,我希望它们可以最大程度地并行,同时又可以方便地去查看每个任务的执行状态,输出和日志。于是就写了这个 python 库,提供命令行终端的交互界面:

    tui_demo.gif

    已经发布到了 pypi 上,直接 pip install gtui 就可以安装了,具体的文档可以看 Github 项目主页,里面有一个简单的例子: https://github.com/CtheSky/gtui

    希望大家能给我点反馈,欢迎来提 issue 和 pr。

    6 条回复    2019-11-16 12:20:10 +08:00
    Aether
        1
    Aether  
       2019-11-13 14:14:04 +08:00   ❤️ 1
    应该有实用场景(虽然眼下想不起来)。
    先收藏感谢…………。
    roberthe
        2
    roberthe  
       2019-11-13 15:01:22 +08:00   ❤️ 1
    不多 bb,看上去是有点帅,撸起来试试
    zthxxx
        3
    zthxxx  
       2019-11-14 18:53:57 +08:00 via iPhone
    tumx / screen 解君愁
    CtheSky
        4
    CtheSky  
    OP
       2019-11-15 09:26:12 +08:00
    @zthxxx 这个可以声明一个依赖关系图,没有先后依赖关的任务会并行执行的。因为是命令行的所以可以在 tmux 里面用,我平时经常和 crontab + tmux 一起用
    zthxxx
        5
    zthxxx  
       2019-11-15 10:54:44 +08:00
    @CtheSky #4 看了下你是用 gtui.add_dependency() 的方式来添加依赖,原本需要执行的命令行现在还需要多写一个 python 文件来执行了,日志也需要重新自己写,对一般情况是不是太麻烦了?

    如果都已经上到要用 python 层面了,有什么必要不直接用轻量级的调度方案 APScheduler / Airflow 呢

    https://github.com/agronholm/apscheduler
    https://github.com/apache/airflow
    CtheSky
        6
    CtheSky  
    OP
       2019-11-16 12:20:10 +08:00
    @zthxxx 我的描述有点不太精确,其实本来是写了一个 python 库的,应该不算是跑脚本的工具。本来是在公司里做的一个命令行工具的一部分,是里面专门用来展示任务进度的,后来就单独抽成一个库开源了,其实主要是为了命令行界面,自己是重度终端用户。其他很多场景的确 airflow 这样的提供的功能更加完善。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4700 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 03:46 · PVG 11:46 · LAX 19:46 · JFK 22:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.