Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

Tool for managing remote repositories from your git CLI!

Project description

Buildstrap: generate a buildout config for any *env project

WTFPL Python3 Issues

There’s pyenv, pyvenv, venv, virtualenv… and who knows how many other ways to deal with development of python programs in a per-project self-contained manner.

While most of the python community tried to keep up, and got their shell configuration or global pip changing regularly, some have been quietly enjoying python development the same way for the last ten years, using buildout for their development.

Though, it’s a fact that buildout is not the standard way to do things, even if it’s a very convenient tool. So to keep your repositories compatible with most *env tools available — or get buildout with other projects. I wrote this tool to make it easy to create a buildout environment within the project.

Quickstart Guide

Here we’ll see the most common usages, and refer to the full documentation for more details.


when you got a repository that has requirements files, at the root of your project’s directory, call buildstrap using:

% buildstrap run project requirements.txt

where project as second argument is the name of the package as you’ve set it up in your — and as you’d import it from other python code.

Running that command will generate the buildout.cfg file, and run buildout in your current directory. Then you’ll find all your scripts available in the newly created bin directory of your project.

If you have several requirements.txt files, depending on the task you want to do, it’s easy:

% buildstrap run project project=requirements.txt test=requirements-test.txt doc=requirements-doc.txt

which will create three sections in your buildout.cfg file, and get all the appropriate dependencies.

Here’s a real life example:

% git hub clone kennethreitz/requests
% cd requests
% buildstrap run requests requirements.txt
% bin/py.test
… (look at the tests result)
% bin/python3
>>> import requests

or another one:

% git hub clone jkbrzt/httpie
% cd httpie
% buildstrap run httpie requirements-dev.txt
% bin/py.test
… (look at the tests result)
% bin/http --version


it’s as easy as any other python program:

% pip install buildstrap

or from the sources:

% git hub clone guyzmo/buildstrap
% cd buildstrap
% python3 install


for development you just need to do:

% pip install buildstrap
% git hub clone guyzmo/buildstrap
% cd buildstrap
% builstrap run buildstrap requirements.txt
% bin/buildstrap

Yeah, I’m being evil here 😈

You can have a look at the sources documentation.

Todo list

  • [ ] Tests: write a full test suite to make sure it’s not buggy!
  • [o] Pydoc: write a nice one page documentation beyond this README.

Nota Bene

You might wonder where does the git hub clone command comes from, and I’m using here another project I wrote: guyzmo/git-repo.

Simply put, git hub clone user/project is equivalent to git clone


Copyright © 2016 Bernard `Guyzmo` Pratz <>
This work is free. You can redistribute it and/or modify it under the
terms of the Do What The Fuck You Want To Public License, Version 2,
as published by Sam Hocevar. See the LICENSE file for more details.

Project details

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
buildstrap-0.2.0-py3-none-any.whl (11.2 kB) Copy SHA256 hash SHA256 Wheel 3.5
buildstrap-0.2.0.tar.gz (8.3 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page