A command-line tool to create Python Packages.
Python Makefile
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


Python Packager


A command-line tool to create Python Packages.

It's intended as a quick way to create new Python packages. It is not a maintenance tool.


$ pip install python-packager
$ pypackager create <mypackage> [options]

This will create a package in your current directory, complete with setup.py, AUTHORS and LICENSE files.

License files are generated by lice.


All options can be specified on the command-line. Templates can override this settings by including a file called .package.cfg and users can override everything by creating a config file at ~/.pypackager/pypackager.cfg.

Storing options

To store your options (so you don't have to type them every time) you can write them into a file called ~/.pypackager/pypackager.cfg:

name = John Smith
email = john.smith@example.com

type = bsd3
organization = John Smith

prerender = ~/.pypackager/my_prerender_script.sh
postrender = ~/.pypackager/my_postrender_script.sh

Creating new packages from a template

To create a new package:

$ pypackager create <mypackage> [options]

Options for create


(alias of --author-name)


Required. The author's full name


Required. The author's email.


Deletes and recreate the package dir if it's already existing.


(alias of --license-type)


Required. The license to include in the code. See lice for a list of the available licenses.


Required. The organization licensing the code. Most of the time this will be the same as --author-name


Optional. The template to use. Can be a directory on the filesystem, a URL pointing to a zip or tarball archive, or the name of an installed template. By default is uses the python-package template shipped with Python Packager.

The rendering context will contain every setting specified, plus a package_name variable containing the package name.

Any directory called {{package_name}} will be renamed to the package's name.


Optional. The language used to render the templates. Options currently available are pystache and jinja2. Defaults to pystache


(alias of --script-prerender)


Optional. If enabled, the specified script will be called before files are rendered from the skeleton. A typical example is a script creating a virtualenv.


Optional. If enabled, the specified script will be called after files are rendered from the skeleton. A typical example is a script initializing a new VCS repository.

Managing templates

You can list, search and download templates from a 'template channel'.

The following commands are available:

$ pypackager list
$ pypackager search <text>
$ pypackager add <package_name> [<url>]
$ pypackager installed
$ pypackager remove <package_name>



Lists all templates available on the index.


Lists available templates on the index whose name contains the specified text.


Downloads the specified template to your ~/.pypackager/ directory.

If a URL is specified, downloads the template from there instead of using the index.


Lists templates that have already been downloaded.


Deletes the specified template from your ~/.pypackager/ directory.



Optional. Specifies an alternative index to use.


This software should be considered Alpha.


This project is released under the MIT License.