Cookiecutter template for a Python package. See
Python Makefile Batchfile
Switch branches/tags
Nothing to show
Clone or download
Latest commit a740d0f Nov 25, 2015
Failed to load latest commit information.
hooks Intial commit Nov 25, 2015
{{cookiecutter.project_slug}} Fix class Nov 25, 2015
.gitignore Intial commit Nov 25, 2015
.travis.yml Intial commit Nov 25, 2015
README.rst Doc update Nov 26, 2015
cookiecutter.json Intial commit Nov 25, 2015



This was forked from: Here are the differences of this forked version:

  • Required packages are not hardcoded in the file. All the required packages are inside the requirements folder.
  • Package requirements are broken down into separate files:
├── requirements
│   ├── dev.txt
│   ├── prod.txt
│   ├── test.txt
  • Creates a default class based on the package name.

Cookiecutter template for a Python package. See

  • Free software: BSD license
  • Vanilla testing setup with unittest and python test
  • Travis-CI: Ready for Travis Continuous Integration testing
  • Tox testing: Setup to easily test for Python 2.6, 2.7, 3.3, 3.4
  • Sphinx docs: Documentation ready for generation with, for example, ReadTheDocs
  • Bumpversion: Pre-configured version bumping with a single command


Generate a Python package project:


About the package requirements:

  • Install the dev requirements in your local machine by running:

    pip install -r requirements/dev.txt
  • Requirements for Unit testing (on Travis) can be found in requirements/test.txt

  • Requirements for Prod build can be found in requirements/prod.txt

  • Prod requirements are reused in both Dev and Test requirements.


  • Create a repo and put it there.
  • Add the repo to your Travis CI account.
  • Run the script to encrypt your PyPI password in Travis config and activate automated deployment on PyPI when you push a new tag to master branch.
  • Add the repo to your ReadTheDocs account + turn on the ReadTheDocs service hook.
  • Release your package the standard Python way. Here's a release checklist:
  • (Optional) If you feel like pinning the requirements for your package, you can add a requirements.txt that specifies packages and version numbers.

Not Exactly What You Want?

Don't worry, you have options:

Similar Cookiecutter Templates

  • Nekroze/cookiecutter-pypackage: A fork of this with a PyTest test runner, strict flake8 checking with Travis/Tox, and some docs and differences.
  • tony/cookiecutter-pypackage-pythonic: Fork with py2.7+3.3 optimizations. Flask/Werkzeug-style test runner, _compat module and module/doc conventions. See README.rst or the github comparison view for exhaustive list of additions and modifications.
  • Also see the network and family tree for this repo. (If you find anything that should be listed here, please add it and send a pull request!)

Fork This / Create Your Own

If you have differences in your preferred setup, I encourage you to fork this to create your own version. Or create your own; it doesn't strictly have to be a fork.

  • Once you have your own version working, add it to the Similar Cookiecutter Templates list above with a brief description.
  • It's up to you whether or not to rename your fork/own version. Do whatever you think sounds good.

Or Submit a Pull Request

I also accept pull requests on this, if they're small, atomic, and if they make my own packaging experience better.