Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
99 lines (57 sloc) 3.34 KB


Python port of for Python 2.5+ (including 3.X).

Currently only support --mill and --render.

There are no requirements for Python 2.7, 3.2+, and pypy-1.9 unless you want to run the tests. To run tests, simply python test.

The remainder of the documentation is adapted from the original project.

Need to generate a bunch of TileMill projects that are nearly identical and then render them all out? What to script that? We gotcha covered.

Usage: projectmill <command> [options]

Example: projectmill --mill -c config.example.json -t ../tilemill/


The easiest route is to just pip install py-projectmill.

To install from source: pip install -e . or python install. If you're using Python 2.5, 2.6, 3.0, or 3.1, you will also need to pip install -r requirements-X.Y.txt (they don't include argparse, which is required, and 2.5 needs simplejson).

Tests pass with all versions from 2.5 - 3.3 and pypy-1.9, so it ought to work for just about everyone.


Configuration is expected as a json file which contains an array as the root object. See config.example.json for an example. Each element in the array should be an object which can have the following keys:

source        REQUIRED The source project, generally the name of folder it
              lives in.

destination   REQUIRED The destination project name.

mml           A json snippet which will be merged on top of the project's mml
              file. To clear out an option set it to 'null'

cartoVars     A json object containing key value pairs which can be use to
              override variables in in carto stylesheets.

MBmeta        MBTiles: A json object containing key value pairs which will be added to
              a rendered MBtiles export.

Additionally, the following options will be passed to TileMill's export commnd

format        Export format (png|pdf|svg|mbtiles). (Default: undefined)

bbox          Array containing coordinates of bounding box to export. (Default: undefined)

minzoom       MBTiles: minimum zoom level to export. (Default: undefined)

maxzoom       MBTiles: maximum zoom level to export. (Default: undefined)

width         Image: image width in pixels. (Default: 400)

height        Image: image height in pixels. (Default: 400)

bufferSize    Mapnik render buffer size. (Default: 128)


ProjectMill accepts the following commands. They can be issued either individually or together:

--mill      Generates new tilemill projects based on configuration.

--render    Renders projects that are present in configuration and have been milled.

--upload    Uploads projects that are present in configuration and have been rendered.


We also accept the following options:

-t      Path to the TileMill install

-c      specify a configuration file. (Defaults: ./config.json)

-p      Path to TileMill project folder. (Defaults: ~/Documents/Mapbox)

-f      Replace existing projects (together with mill) or existing projects and exports (together with render).