Simple project scaffolding for Python
Latest commit 90b0ac0 Jan 15, 2015 @Aaronontheweb Merge pull request #12 from jijisv/master
minor tweeks for python 3


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