Simple project scaffolding for Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
scaffold Python3 changes - byte array to string conversion Nov 3, 2014
tests parentheses for print May 27, 2013
.gitignore updates to files Jun 26, 2012 updates to files Jun 26, 2012
readme.textile typo Apr 6, 2013


Scaffold for Python

Inspired by Zed Shaw’s recommended Python project structure from Learn Python the Hard Way exercise #46.

Each project you scaffold will create the following directory structure:


Both and [projectname] are set up automatically to reference your project name as a module. The rest is up to you!

Installing Scaffold

You can view the scaffold package on PyPi here:

To install, simply use pip install scaffold

Running Scaffold

Scaffold installs itself as an executable Python script, so just enter the pyscaffold command on your favorite terminal:

pyscaffold -p "projectname" [-d {base directory}]

You can also run scaffold as a python module if needed:

python -m scaffold -p "projectname" [-d {base directory}]

The -p parameter is the name of your project and is a required field. If you don’t specify a base directory with the -d parameter, scaffold will assume that you want to create your project skeleton in your current working directory.

Sample Usage:

Just to give you an idea of what works and what doesn’t…

pyscaffold -p "http-utils" -d /c/repositories/
pyscaffold -p "mutliplex-py"
pyscaffold -p "lazarus" -d ../

Virtualenvwrapper support

Alternatively, if (the excellent) virtualenvwrapper is installed, Scaffold also works as a project template named base. So you could run:

mkproject -t base projectname

Then virtualenvwrapper will create the virtualenv and the project root and Scaffold will do the rest.


Licensed under Apache 2.0 – see license.txt for details.


I’m not the most experienced Python programmer on the planet, so patches are most certainly welcome :)
-Aaron Stannard