Is there a Rake equivalent in Python?

PythonBuild Automation

Python Problem Overview


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?

Python Solutions


Solution 1 - Python

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.

Solution 2 - Python

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

Solution 3 - Python

Solution 4 - Python

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.

Solution 5 - Python

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

Solution 6 - Python

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.

Solution 7 - Python

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.

Solution 8 - Python

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

Solution 9 - Python

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questione-satisView Question on Stackoverflow
Solution 1 - PythonMatthew RankinView Answer on Stackoverflow
Solution 2 - PythonNed BatchelderView Answer on Stackoverflow
Solution 3 - PythonGian MarcoView Answer on Stackoverflow
Solution 4 - Pythonlas3rjockView Answer on Stackoverflow
Solution 5 - PythoncharlaxView Answer on Stackoverflow
Solution 6 - PythonHamish DownerView Answer on Stackoverflow
Solution 7 - PythonLennart RegebroView Answer on Stackoverflow
Solution 8 - PythonWernightView Answer on Stackoverflow
Solution 9 - PythonAndrew HareView Answer on Stackoverflow