Python bindings for mapnik
Official mapnik bindings repackaged in the distutils way to facilitate deployments.
The python bindings are tied to the mapnik2 library version.
To use with:
mapnik2 library - 2.0.1:
== mapnik2 126.96.36.199easy_install -U mapnik2==188.8.131.52
mapnik2 library - 2.0.2:
== mapnik2 184.108.40.206easy_install -U mapnik2==220.127.116.11
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 new 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)
- The current python interpreter
To specify which boostpython lib to link against, you can use, you can use the following:
Where you have on your filesystem:
- 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: http://peak.telecommunity.com/DevCenter/EasyInstall
virtualenv --no-site-packages test source test/bin/activate easy_install mapnik2
If your boost python installation is not in a standart place, just set the [LD_LIBRARY_PATH, LDFLAGS, CFLAGS] to find it.
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.
[buildout] parts = somepart [somepart] recipe = minitage.recipe.scripts ... # (options like include dirs) ... eggs = ... mapnik2
Re-run buildout, e.g. with:
You can read the buildout installation shipped with this egg for inspiration.
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 https://github.com/mapnik/pymapnik2.git 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 ./bin/mypy >>> import mapnik2
For using mapnik2 inside your minitagified application:
Inside the eggs parts of you buildout add:[part] ... eggs += mapnik2
In your minibuild, merge the mapnik2 dependencies that you can find here:
Reminimerge your project to build the mapnik2 egg
Then add mapnik2 to your setup.py or buildout for it to be grabbed in your pythonpath.
Rerun buildout, you’re done