在 Python 中有 Rake 等价物吗?

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

30962 次浏览

Paver has a similar set of goals, though I don't really know how it compares.

I would check out distutils:

The distutils package provides support for building and installing additional modules into a Python installation. The new modules may be either 100%-pure Python, or may be extension modules written in C, or may be collections of Python packages which include modules coded in both Python and C.

Waf is a Python-based framework for configuring, compiling and installing applications. It derives from the concepts of other build tools such as Scons, Autotools, CMake or Ant.

Also check out buildout, which isn't so much a make system for software, as a make system for a deployment.

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

So it's not a direct rake equivalent, but may be a better match for what you want to do, or a really lousy one.

There is Phantom in Boo (which isn't Python, but nearly).

Although it is more commonly used for deployment, Fabric might be interesting for this use case.

InvokeFabric without the SSH dependencies.

The Fabric roadmap discusses that Fabric 1.x will be split into three portions:

  1. Invoke — The non-SSH task execution.
  2. Fabric 2.x — The remote execution and deployment library that utilizes Invoke.
  3. Patchwork — The "common deployment/sysadmin operations, built on Fabric."

Invoke is a Python (2.6+ and 3.3+) task execution tool & library, drawing inspiration from various sources to arrive at a powerful & clean feature set.

Below are a few descriptive statements from Invoke's website:

  • Invoke is a Python (2.6+ and 3.3+) task execution tool & library, drawing inspiration from various sources to arrive at a powerful & clean feature set.
  • Like Ruby’s Rake tool and Invoke’s own predecessor Fabric 1.x, it provides a clean, high level API for running shell commands and defining/organizing task functions from a tasks.py file.

There is also doit - I came across it while looking for these things a while ago, though I didn't get very far with evaluating it.