Skip to content


Subversion checkout URL

You can clone with
Download ZIP
C Python C++ Other
Branch: master
Failed to load latest commit information.
agg Updated AGG dep for Mapnik 2.2.0
cpp Updated Mapnik source to 2.2.0
docs documentation & release stuff
hooks better disutils handling
minilays/mapnik-egg freebsd patch
src Disabled some python plugin tests
.gitignore better disutils handling
.hgignore refreshing from trunk
CHANGES.rst Back to development: 2.2.1
README.rst Version bumped to the 2.2.0 better disutils handling better disutils handling 2.0.2 first pass
becomepil.patch better disutils handling release stuff
buildout.cfg release stuff
cairo.cfg better disutils handling
minitage-26.cfg freebsd patch
minitage-27.cfg document for minitage, separate py26/py27 for minitage
minitage.cfg freebsd patch better disutils handling Back to development: 2.2.1 refresh 2.1.0 2.0.1 release



Official mapnik bindings repackaged in the distutils way to facilitate deployments.

This depends of those libraries to be installed on you environment:

  • mapnik2 (the c++ library)

  • BOOST c++:

    • boost python
    • boost thread
    • boost regex

Optionnal but heavily recommended python libraries

  • pycairo
  • PIL / Pillow

If you are a buildout user, you can look at this package buildout which integrates pycairo & pil installation

See github


The python bindings are tied to the mapnik2 library version.

To use with:

  • mapnik2 library - 2.0.1:

    == mapnik2

    easy_install -U mapnik2==
  • mapnik2 library - 2.1.0:

    == mapnik2 2.1.0

    easy_install -U mapnik2==2.1.0
  • mapnik2 library - 2.2.0:

    == mapnik2 2.2.0

    easy_install -U mapnik2==2.2.0








Don't forget that you can play with LDFLAGS/CFLAGS/LD_LIBRARY_PATH dto indicate non standart locations for the following requirements if it applies.

You will have to have the includes and libraries for

  • The mapnik-config utility to be in your $PATH
  • Boost_python linked to your python interpreter If it is not installed in standart envionments, you ll have to handle the CFLAGS/LDFLAGS to find it, or use minitage ;)
  • cairo / cairomm (optionnal but enabled if you compiled mapnik with cairo support)
  • mapnik2
  • The current python interpreter
  • pycairo / PIL in the PYTHONPATH somehow


Some developers use buildout to ease deployments. * Say where to find mapnik-config by settings correctly your PATH environment variable * Add mapnik to the list of eggs to install, e.g.

parts = somepart

recipe = minitage.recipe.scripts # or zc.recipe.egg ...
eggs = mapnik2
  • Re-run buildout, e.g. with:

    $ ./bin/buildout

You can read the buildout installation shipped with this egg for inspiration of how integrate mapnik in a buildout. The magic is using buildout.minitagificator to feed PKG_CONFIG_PATH and PYTHONPATH with pycairo

Running this package buildout

First you need to install pycairo locally:

bin/buildout -vvvvvNc cairo.cfg

Then run buildout:

bin/buildout -vvvvvN

Easy_install with or without virtualenv

virtualenv --no-site-packages test
source test/bin/activate
easy_install mapnik2
  • Say where to find mapnik-config by settings correctly your PATH environment variable
  • When you're reading this you have probably already run easy_install mapnik2. Find out how to install setuptools (and EasyInstall) here:


To specify which boostpython lib to link against, you can use, you can use the following:


Where you have on your filesystem:


For ubuntu users, please refer to this doc to install the prerequisites of this egg.


Some developers use minitage to ease deployments (a layer upon buildout). Indeed, it takes care a lot of things like those boring compilation flags. As an example, to work on this egg in development mode, you can boostrap it by doing this::

easy_install -U virtualenv
virtualenv --no-site-packages --distribute ~/minitage
mkdir ~/minitage/others

Install minitage, if you haven't yet

source ~/minitage/bin/activate
easy_install -U minitage.core

Initialize it (mandatory)

source ~/minitage/bin/activate
minimerge -s

To install the minilay for the mapnik2 egg development you can do

cd  ~/minitage/others
git clone mapnik-egg-(py26 or py27)
ln -fs ~/minitage/others/mapnik-egg*/minilays/mapnik-egg/  ~/minitage/minilays/mapnik-egg
#for python-2.6
minimerge -av mapnik-egg-py26
#for python-2.7
minimerge -av mapnik-egg-py27

Enjoy your installation

cd ~/minitage/others/mapnik-egg-py26
or cd ~/minitage/others/mapnik-egg-py27
>>> import mapnik2

For using mapnik2 inside your minitagified application:

Something went wrong with that request. Please try again.