Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

For me, the only justification for using a language-specific build tool (e.g. grunt, rake, paver, ...) is when you actually want to exchange data with a library / program written in that language. On the other hand, you could probably accomplish the same effect using environment variables, with the upside of having a cleaner interface.

For those that are curious which build tools exist for Python, here's an (incomplete) list:

* pyinvoke (https://github.com/pyinvoke) - claims to be the successor of fabric, pretty solid and well-maintained

* fabric (http://www.fabfile.org/) - not actually a build tool but often used as one

* paver (http://paver.github.io/paver/) - no longer actively maintained

* doit (http://pydoit.org/) - one of the few tools that actually support monitoring file states (like the original make)

* disttools (https://docs.python.org/2/distutils/) - not actually a "universal" build tool but intended to distribute Python packages



You forgot buildout[1], which is probably more than a build system, perhaps putting a toe into the configuration management world.

1. http://www.buildout.org/

Documentation can be challenging to find, and it isn't the most actively developed project in the world, but what it does, it does pretty well (including supporting more than python dependencies).


Thanks for posting the link! I hesitated including configuration management tools since the use case is not the same. There's a lot of interesting stuff going on there though: With Saltstack and Ansible we have two serious "chef" contenders for Python now.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: