君子慎独

君子戒慎乎其所不睹,恐惧乎其所不闻。莫见乎隐,莫显乎微,故君子慎其独也。

编译Python版的Shapelib 601

作者为 发表

Python编程语言

Shapelib是一个广泛用于GIS的 C 开源库, 每次使用时需要创建工程与编译程序总是一件较繁琐的事情, 为了提高日常应用的效率, 可以考虑通过脚本语言代替C/C++, 其中Python是一个不错的选择.

准备

下载shapelib与python bindings for Shapelib with SWIG

Shapelib

http://download.osgeo.org/shapelib/shapelib-1.3.0.zip

Pyshapelib

http://ftp.intevation.de/users/bh/pyshapelib/pyshapelib-0.3.zip

 

编译测试环境

Visual Studio 2008

Python 2.7.6

配置Pyshapelib与shapelib

分别解压之后, 需要将Pyshapelib放到shapelib目录下面, 或者可以通过 Pyshapelib 下面的 setup.py 文件手动配置;

clip_image001

修改 setup.py 文件, 使编译shapelib时包含 safileio.c

clip_image002

编译Shapelib

执行: python setup.py build

编译正常结束后, 将在 Pyshapelib 目录下生成 Build 文件夹, 生成的文件结构如下图所示:

clip_image003

注: 如果末修改 Setup.py 文件, 而直接进行编译, 将出现如下错误提示:

shpopen.obj : error LNK2019: unresolved external symbol _SASetupDefaultHooks referenced in function _SHPOpen

shptree.obj : error LNK2001: unresolved external symbol _SASetupDefaultHooks

buildlib.win32-2.7shapelibc.pyd : fatal error LNK1120: 1 unresolved externals

error: command ‘D:ProgramFilesMicrosoftVS2008VCBINlink.exe’ failed with exit status 1120

 

安装Shapelib到Python扩展目录

执行: python setup.py install

命令执行正常结束后, 自动将生成的库复制到Python的扩展目录下:

clip_image004

clip_image005

至此, 已完成shapelib的安装, 可能通过 Python 命令进行验证是否安装成功.

clip_image006

以后在其它电脑的 Python 中使用 Shapelib 时, 记得将 {Python dir}site-packages 下的文件一起打包.


评论给 Bradley 1个评论





 主题设计 • skyfrit.com  君子慎独 | 保留所有权利

59 queries in 1.166 seconds |