Skip to content
A template for new Python projects.
Makefile Python


A Python project template for cookiecutter.

Unix: Unix Build Status Windows: Windows Build Status

This is a template for a typical Python library following modern packaging conventions. It utilizes popular libraries alongside Make, Pandoc, and Graphviz to fully automate all development and deployment tasks.

A live demo of this template: jacebrowning/template-python-demo

And a few sample projects based on this template:

Get Started

Install cookiecutter and generate a project:

$ pip install cookiecutter
$ cookiecutter gh:jacebrowning/template-python

Cookiecutter will ask you for some basic info (your name, project name, python package name, etc.) and generate a base Python project for you.


  • Preconfigured setup for Travis-CI, Coveralls, and Scrutinizer
  • Makefile for automating common development tasks:
    • Setting up a virtualenv
    • Installing dependencies using pip
    • Running tests
    • Running style checkers (pep8/pep257) and linters (pylint)
    • Building documentation
    • Creating and releasing distributions to PyPI

Apply Updates


To apply updates to an existing project, use the update branch and provide the same project details:

$ cd <parent directory of existing project>
$ cookiecutter gh:jacebrowning/template-python --checkout update

Then, discard all undesired changes before committing.

Manual Diff

Checkout the appropriate branch of template-python-demo and manually merge changes into your project.

Something went wrong with that request. Please try again.