mapnik的python绑定

mapnik2的Python项目详细描述


官方的mapnik绑定以distutils方式重新打包,以便于部署。

这取决于要在您的环境中安装的那些库:

  • mapnik2 (the c++ library)

  • BOOST c++:

    • boost python
    • boost thread
    • boost regex

可选但强烈推荐的python库

  • pycairo
  • PIL / Pillow

如果您是buildout用户,可以查看这个包 集成pycairo&pil安装的构建

github

MAPNIK2 Notes

python绑定绑定绑定到mapnik2库版本。

与一起使用:

  • mapnik2 library - 2.0.1:

    == mapnik2 2.0.1.3

    easy_install -U mapnik2==2.0.1.3
    
  • 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
    

Installation

Prerequisites

不要忘记,如果适用,可以使用ldflags/cflags/ld_library_path dt来指示以下需求的非标准位置。

您必须拥有用于

  • 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

Buildout

一些开发人员使用buildout来简化部署。 *通过正确设置PATH环境变量说明在何处查找mapnik config *将mapnik添加到要安装的鸡蛋列表中,例如

[buildout]
parts = somepart

[somepart]
recipe = minitage.recipe.scripts # or zc.recipe.egg ...
eggs = mapnik2
  • 重新运行构建,例如使用:

    $ ./bin/buildout
    

您可以阅读这个egg附带的buildout安装,以获得如何将mapnik集成到buildout中的灵感。 神奇的是使用buildout.minitagificator为pycairo提供pkg config路径和pythonpath

Running this package buildout

首先,您需要在本地安装pycairo:

bin/buildout -vvvvvNc cairo.cfg

然后运行buildout:

bin/buildout -vvvvvN

Easy_install with or without virtualenv

virtualenv --no-site-packages test
source test/bin/activate
easy_install mapnik2
  • 通过正确设置path环境变量,说明在何处查找mapnik config
  • 当你读到这篇文章的时候,你可能已经跑了 easy_install mapnik2。了解如何安装setuptools (和easyinstall)这里: http://peak.telecommunity.com/DevCenter/EasyInstall

BOOST NOTES

要指定要链接的boostpython库,可以使用,可以使用以下命令:

export MAPNIK2_BOOST_PYTHON="libboost_python.so.1:libboost_thread.so.1"

文件系统上的位置:

/usr/lib/libboost_python.so.1
/usr/lib/libboost_thread.so.1

对于ubuntu用户,请参考this doc来安装这个egg的先决条件。

Minitage

一些开发人员使用minitage来简化部署(构建时的一个层)。 实际上,它处理了很多事情,比如那些无聊的编译标志。 例如,要在开发模式下处理这个egg,可以这样做来增强它::

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

如果尚未安装minitage,请安装它

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

初始化它(mandatory

source ~/minitage/bin/activate
minimerge -s

要安装用于mapnik2卵子开发的minilay,您可以执行以下操作

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

享受您的安装

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

在小型化应用程序中使用mapnik2:

Changelog for mapnik2

2.2.0 (2013-07-23)

  • 刷新2.2.0[dodobas]

2.0.1.1 (2012-08-05)

  • 重命名版本

2.0.2 (2012-08-04)

2.0.1 (2012-05-06)

Mapnik2 Eggified Python绑定的首次公开发布

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java生成缺少的Bpmn图元素   Java为什么这段代码会重复?非接触性异常?   java如何在OpenIMAJ中使用自定义字体   java我可以使用process builder合并两个不同的进程吗?   java Lwjgl 3D多维数据集透明度问题   java通过JSP显示BLOB(图像)   java如何更改JTextArea中的文本颜色?   当HTML标记与JButton/JLabel一起使用时,java会丢失字体   JavaHK2:使用立即作用域绑定到接口的实现   java如何在struts2中从底层bean生成表单显示数据?   为REST控制器调用两次java Spring安全自定义筛选器   java为什么netty有自己的ConcurrentHashMap?   java ImageMagick:转换管道图像   java我的选择算法有什么问题?   java聚合要列出的HQL结果   java将几个单独的文件导入eclipse项目   java Load Unpacket扩展在developer中被禁用