Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

zc.buildout recipe to install static resources using Twitter Bower.

Project Description


This recipe allows downloading and installing assets such as images, CSS and JavaScript using Twitter Bower.

Supported options

The recipe supports the following options:


Packages that should be installed with bower. Packages specified here are passed to bower verbatim. They can be specified in any form that is supported by bower:

packages =

Absolute path to the bower “project” directory. bower install is run from this directory and the bower configuration file, .bowerrc is also placed here. Optional; defaults to ${buildout:parts-directory}/bower. Requires an absolute path.

This directory is not removed when the Buildout part is uninstalled.

Absolute path to the bower executable. Packages are installed using this executable. Optional; defaults to bower on PATH.

Relative path, from the base-directory, to the directory where bower will download packages to. This path is written to the .bowerrc file prior to running the executable. Optional; defaults to downloads. Thus, the downloaded packages are placed in ${base-directory}/downloads by default.

This directory is removed when the Buildout part is uninstalled.

Example usage

A sample buildout that uses this recipe could look like:

parts = node web

recipe = gp.recipe.node
url =
npms = bower@0.6.8
scripts = bower

recipe = bowerrecipe
packages = jquery#1.8.3 normalize-css
executable = ${buildout:bin-directory}/bower

This would place the downloaded packages in parts/bower/downloads. Modifying the web section to be:

recipe = bowerrecipe
packages = jquery#1.8.3 normalize-css
executable = ${buildout:bin-directory}/bower
base-directory = ${buildout:parts-directory}
downloads = components

would result in bower placing the downloaded packages in parts/components.


  1. Bower still looks at the ~/.bowerrc file. Hence, if this file exists, it may affect the buildout bower configuration
  2. Bower still uses the cache located in the user’s home directory. For me, this happens to be ~/.bower/cache/


Anshuman Bhaduri Sebastian Wehrmann



  • Fix removal of base directory upon uninstall. (#1)
  • Update files on every buildout run, rather loading them once.


  • Fixed documentation so it displays correctly on PyPI [Anshuman Bhaduri]


  • Created initial recipe [Anshuman Bhaduri]

Release History

This version
History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Hash SHA256 Hash Help Version File Type Upload Date
(5.1 kB) Copy SHA256 Hash SHA256
Source Jun 14, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting