Buildout vs virtualenv + pip for django? Buildout vs virtualenv + pip for django? django django

Buildout vs virtualenv + pip for django?


At the core, buildout and pip+virtualenv do the same. They both use python packages, install them, isolate them from the rest of your python environment, handle dependencies (through setup.py) and so on.

Buildout does more. Which, naturally, means a bit more configuration than with pip. You'll have to figure out whether the extra configuration is worth the effort for what you get back from it.

Some of the extras you can get out of buildout with a couple of add-ons ("recipes"):

  • The 'djangorecipe' addon that sets up django for you. No need for that environment variable that points at your settings.py file, for instance. Handy.

  • Automatically setting up a cronjob.

  • Generating config files (like an apache one for your site) from a template. Uses variables from your buildout config, so this prevents duplication.

Basically, you can get some explicit configuration done with buildout. Fewer manual steps.

On the other hand, you can use other tools for that extra level of automation that you probably need. So virtualenv+pip+something_else is also a possibility.