【问题标题】:Is there a Rake equivalent in Python?Python中有Rake等价物吗?
【发布时间】:2009-09-10 21:29:57
【问题描述】:

Rake 是用 Ruby 编写的软件构建工具(如 AntMake),因此它的所有文件都是用这种语言编写的。 Python中是否存在类似的东西?

【问题讨论】:

标签: python build-automation


【解决方案1】:

InvokeFabric 没有 SSH 依赖项。

Fabric roadmap 讨论 Fabric 1.x 将分为三个部分:

  1. Invoke — 非 SSH 任务执行。
  2. Fabric 2.x — 利用 Invoke 的远程执行和部署库。
  3. Patchwork——“基于 Fabric 构建的常见部署/系统管理员操作。”

Invoke 是一个 Python(2.6+ 和 3.3+)任务执行工具和库,从各种来源中汲取灵感,以实现强大而简洁的功能集。

以下是来自Invoke 网站的一些描述性陈述:

  • Invoke 是一个 Python(2.6+ 和 3.3+)任务执行工具和库,它从各种来源汲取灵感,以形成强大而简洁的功能集。
  • 与 Ruby 的 Rake 工具和 Invoke 自己的前身 Fabric 1.x 一样,它提供了一个干净的高级 API,用于运行 shell 命令和从 tasks.py 文件定义/组织任务函数。

【讨论】:

  • @IgorZevaka 现在可以在 Windows 上运行,主题相同 - github.com/pyinvoke/invoke/pull/119
  • 大约 4 年前是 Shovel 用户。现在绝对要使用 Invoke。非常酷的命令行界面,任务声明又好又简单,链接感觉就像 Make 的。不错。
  • 对 Paver(在此 Q 的其他答案中提到)和 Invoke 有什么看法?他们是直接的“竞争对手”吗?优点/缺点?
【解决方案2】:

Paver 有一组类似的目标,虽然我真的不知道它是如何比较的。

【讨论】:

【解决方案3】:

【讨论】:

  • 截至 2015 年 12 月 23 日,Shovel 最后一次更新是在一年前的 14 年 12 月 5 日。
【解决方案4】:

Waf 是一个基于 Python 的框架,用于配置、编译和安装应用程序。它源自其他构建工具的概念,例如 Scons、Autotools、CMake 或 Ant。

【讨论】:

  • Waf 其他 scons 有什么好处?
【解决方案5】:

还有doit - 前段时间我在寻找这些东西时遇到了它,虽然我没有对它进行评估。

【讨论】:

    【解决方案6】:

    虽然它更常用于部署,但 Fabric 可能对这个用例很感兴趣。

    【讨论】:

      【解决方案7】:

      还可以查看 buildout,它与其说是用于软件的 make 系统,不如说是用于部署的 make 系统。

      http://pypi.python.org/pypi/pysqlite/2.5.5

      所以它不是一个直接的 rake 等价物,但可能更适合您想要做的事情,或者是一个非常糟糕的事情。

      【讨论】:

      • 为此使用扩建就像开坦克去商场,不是吗?无论如何,在 Zope / Plone 之外使用任何 Zope / Plone 工具通常是:-p
      • “为了那个”?他没有具体说明他想用它做什么。无论如何,buildout 不是 Zope/Plone 工具。它也不大也不复杂。有些人仅仅因为它是由 Zope 开发人员编写或使用而放弃该工具,这真的很令人厌烦。这种态度很愚蠢。
      • 拜托,那只是开玩笑。我曾经在一家只有 Plone 的公司工作,是的,我们经常拿我们使用的工具开玩笑。这是一种理智的态度,你不觉得吗?
      【解决方案8】:

      在 Boo 中有 Phantom(不是 Python,但差不多)。

      【讨论】:

        【解决方案9】:

        我会查看distutils:

        distutils 包提供支持 用于建造和安装额外的 模块到 Python 安装中。 新模块可能是 100% 纯 Python,或者可能是扩展 用 C 编写的模块,或者可能是 Python 包的集合,其中 包括在 Python 中编码的模块 和 C.

        【讨论】:

        • 它是否支持文档生成或运行单元测试?
        猜你喜欢
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-09
        • 2011-03-18
        • 2019-06-03
        • 2021-03-29
        • 2018-09-06
        相关资源
        最近更新 更多