Is there a Rake equivalent in Python?

Question:

Rake is a software build tool written in Ruby (like Ant or Make), and so all its files are written in this language. Does something like this exist in Python?

Asked By: e-satis

||

Answers:

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

Answered By: Ned Batchelder

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.

Answered By: Andrew Hare

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.

Answered By: las3rjock

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.

Answered By: Lennart Regebro

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

Answered By: Wernight

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

Answered By: charlax

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.
Answered By: Matthew Rankin

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.

Answered By: Hamish Downer
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.