GeoDjango Installation

Overview

一般来说,GeoDjango安装需要:

  1. Python and Django
  2. Spatial database
  3. Installing Geospatial libraries

每个要求和安装说明的详细信息在以下部分中提供。此外,平台特定的指令可用于:

使用源

因为GeoDjango利用了最新的开源地理空间软件技术,所以最近版本的库是必要的。如果二进制包不适用于您的平台,则可能需要从源安装。当从源代码编译库时,请按照指示进行操作,特别是如果你是初学者。

Requirements

Python and Django

由于Django附带了GeoDjango,有关如何安装的详细信息,请参阅Django的installation instructions

Spatial database

PostgreSQL(使用PostGIS),MySQL(主要使用MyISAM引擎),Oracle和SQLite(使用SpatiaLite)是当前支持的空间数据库。

注意

PostGIS是推荐的,因为它是最成熟和功能丰富的开源空间数据库。

GeoDjango安装所需的地理空间库取决于所使用的空间数据库。以下列出了库要求,受支持的版本以及每个受支持的数据库后端的任何注释:

数据库图书馆要求支持的版本笔记
PostgreSQLGEOS,PROJ.4,PostGIS9.0+需要PostGIS。
MySQLGEOS5.5+不符合OGC标准; limited functionality
OracleGEOS11.1+XE不支持。
SQLiteGEOS,GDAL,PROJ.4,SpatiaLite3.6需要SpatiaLite 2.3+,pysqlite2 2.5+

另请参见OSGeo Wiki上针对PostgreSQL / PostGIS / GEOS / GDAL可能组合的此比较矩阵

Installation

Geospatial libraries

Database installation

Add django.contrib.gis to INSTALLED_APPS

Like other Django contrib applications, you will only need to add django.contrib.gis to INSTALLED_APPS in your settings. 这样可以定位gis模板 - 如果未完成,则地理管理员或KML站点地图等功能将无法正常工作。

Add Google projection to spatial_ref_sys table

注意

如果您运行的是GDAL 1.7或更高版本(大多数用户),则可以跳过此步骤。

为了对所谓的“Google”投影(Google地图使用的球形墨卡托投影)进行数据库转换,必须在空间数据库的spatial_ref_sys表中添加一个条目。从项目中调用Django shell并执行add_srs_entry函数:

$ python manage.py shell
>>> from django.contrib.gis.utils import add_srs_entry
>>> add_srs_entry(900913)

这将900913 SRID的条目添加到spatial_ref_sys(或等效的)表中,使得空间数据库可以在此投影中变换坐标。您只需对每个空间数据库执行此命令一次

Troubleshooting

如果你在这里找不到你的问题的解决方案,那么参加社区!您可以:

  • 在Freenode上加入#geodjango IRC频道。请耐心和礼貌 - 虽然你可能不会立即回应,有人会尽快回答你的问题,一旦他们看到它。
  • GeoDjango邮寄名单上提出您的问题。
  • 如果您认为有一个错误,请在Django trac上提出请求。确保提供问题的完整描述,使用的版本,并将组件指定为“GIS”。

Library environment settings

到目前为止,安装GeoDjango最常见的问题是无法找到外部共享库(例如,用于GEOS和GDAL)。[1]通常,此问题的原因是操作系统不知道从源代码构建的库安装的目录。

通常,库路径可以通过设置环境变量或通过配置整个系统的库路径来基于每个用户来设置。

LD_LIBRARY_PATH environment variable

用户可以设置此环境变量以自定义他们要使用的库路径。从源代码构建的软件的典型库目录是/usr/local/lib因此,/usr/local/lib需要包含在LD_LIBRARY_PATH变量中。例如,用户可以在bash配置文件中放置以下内容:

export LD_LIBRARY_PATH=/usr/local/lib

Setting system library path

在GNU / Linux系统上,通常在/etc/ld.so.conf中有一个文件,它可能包括另一个目录中的文件的其他路径,例如/etc/ld.so.conf.d作为root用户,在ld.so.conf中的新行上添加自定义库路径(如/usr/local/lib)。这是一个示例如何这样做:

$ sudo echo /usr/local/lib >> /etc/ld.so.conf
$ sudo ldconfig

对于OpenSolaris用户,可以使用crle实用程序修改系统库路径。运行crle,无任何选项可查看当前配置,并使用crle -l 。修改系统库路径时,非常

# crle -l $OLD_PATH:/usr/local/lib

Install binutils

GeoDjango使用find_library函数(来自ctypes.util Python模块)来发现库。find_library例程使用称为objdump的程序(binutils包的一部分)来验证GNU / Linux系统上的共享库。因此,如果您的Linux系统上没有安装binutils,Python的ctypes可能无法找到您的库,即使您的库路径设置正确,地理空间库也是完美的。

可以使用以下命令在Debian和Ubuntu系统上安装binutils软件包:

$ sudo apt-get install binutils

同样,在Red Hat和CentOS系统上:

$ sudo yum install binutils

Platform-specific instructions

Mac OS X

由于可用于OS X的各种包装系统,用户有几个不同的选项来安装GeoDjango。这些选项是:

注意

目前,在OS X上安装GeoDjango的最简单和推荐的方法是使用KyngChaos包。

本节还包括从Python软件基金会提供的软件包安装升级版本的Python的说明,但这不是必需的。

Python

虽然OS X附带Python安装,用户可以使用Python软件基金会提供的框架安装程序(2.73.23.3)。使用安装程序的一个优点是,OS X的Python将保持“原始”的内部操作系统使用。

注意

您需要修改.profile文件中的PATH环境变量,以便在输入python时使用新版本的Python命令行:

export PATH=/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH

Homebrew

Homebrew提供了用于从源代码构建二进制和包的“食谱”。它在运行OS X的Macintosh计算机上提供GeoDjango先决条件的配方。由于Homebrew仍然从源代码构建软件,因此需要使用Apple开发人员工具

概要:

$ brew install postgresql
$ brew install postgis
$ brew install gdal
$ brew install libgeoip

KyngChaos packages

William Kyngesburye提供了许多地理空间库二进制包,这使得在OS X上安装GeoDjango变得简单,而无需从源代码编译它们。但是,对于编译Python数据库适配器psycopg2(对于PostGIS)和pysqlite2(对于SpatiaLite),仍然需要Apple开发人员工具

注意

SpatiaLite用户在安装软件包后,请参阅Mac OS X-specific instructions部分,了解其他说明。

下载以下框架包:

  • UnixImageIO
  • PROJ
  • GEOS
  • SQLite3(包括SpatiaLite库)
  • GDAL

按照上面列出的顺序安装软件包,因为GDAL和SQLite软件包需要之前列出的软件包。

之后,您还可以为PostgreSQL和PostGIS安装KyngChaos二进制包。

安装二进制包之后,您需要将以下内容添加到.profile,以便能够从命令行运行包程序:

export PATH=/Library/Frameworks/UnixImageIO.framework/Programs:$PATH
export PATH=/Library/Frameworks/PROJ.framework/Programs:$PATH
export PATH=/Library/Frameworks/GEOS.framework/Programs:$PATH
export PATH=/Library/Frameworks/SQLite3.framework/Programs:$PATH
export PATH=/Library/Frameworks/GDAL.framework/Programs:$PATH
export PATH=/usr/local/pgsql/bin:$PATH
psycopg2

如上所述,在安装了KyngChaos二进制文件并修改了PATH之后,可以使用以下命令安装psycopg2

$ pip install psycopg2

注意

如果您没有pip,请按照installation instructions安装。

Fink

Kurt Schwehr已经足够为Fink包系统的用户创建GeoDjango软件包。提供不同的软件包(以“django-gis”开头),具体取决于您要使用的Python版本。

MacPorts

MacPorts可用于在运行OS X的Macintosh计算机上安装GeoDjango必备软件。由于MacPorts仍然从源代码构建软件,因此需要使用Apple开发人员工具

概要:

$ sudo port install postgresql93-server
$ sudo port install geos
$ sudo port install proj
$ sudo port install postgis
$ sudo port install gdal +geos
$ sudo port install libgeoip

注意

您还必须修改.profile中的PATH,以便可以从命令行访问MacPorts程序:

export PATH=/opt/local/bin:/opt/local/lib/postgresql93/bin

此外,添加DYLD_FALLBACK_LIBRARY_PATH设置,以便可以通过Python找到库:

export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib:/opt/local/lib/postgresql93

Windows

按顺序执行以下部分,以便在Windows上安装GeoDjango。

注意

这些说明假定您使用的是所有程序的32位版本。虽然64位版本的Python和PostgreSQL 9.x可用,但64位版本的空间库(如GEOS和GDAL)尚未由OSGeo4W安装程序提供。

Python

首先,从Python网站下载最新的Python 2.7安装程序接下来,运行安装程序并保留默认值 - 例如,选中“安装所有用户”并将安装路径设置为C:\Python27

注意

您可能已在C:\python中安装了Python版本,因为ESRI产品有时会在其中安装副本。您仍应安装新版本的Python 2.7.

PostgreSQL

首先,从EnterpriseDB网站下载最新的PostgreSQL 9.x安装程序下载后,只需运行安装程序,按照屏幕上的说明操作,并保留默认选项,除非您知道更改它们的后果。

注意

PostgreSQL安装程序创建一个新的Windows用户为“postgres服务帐户”和一个postgres数据库超级用户您将被提示一次设置两个帐户的密码 - 确保记住它!

安装程序完成后,将要求在退出时启动应用程序堆栈生成器(ASB) - 保持此选中状态,因为必须安装PostGIS

注意

如果安装成功,PostgreSQL服务器将在每次系统作为Windows服务启动时在后台运行。将创建一个PostgreSQL 9.x开始菜单组,并包含ASB和“SQL Shell”的快捷方式,它将启动psql命令窗口。

PostGIS

从应用程序堆栈生成器(要在安装程序外部运行,启动程序> PostgreSQL 9.x),从端口5432选择PostgreSQL Database Server 9.x下拉式菜单。接下来,展开类别‣空间扩展菜单树,然后选择PostGIS X.Y for PostgreSQL 9.x

单击下一步后,将提示您选择镜像,PostGIS将下载,PostGIS安装程序将开始。在安装过程中只选择默认选项(例如,不要取消选中创建默认PostGIS数据库的选项)。

注意

系统将提示您在“数据库连接信息”对话框中输入您的postgres数据库超级用户密码。

psycopg2

psycopg2 Python模块提供了Python和PostgreSQL数据库之间的接口。为您的Python和PostgreSQL版本下载最新的Windows安装程序,并使用默认设置运行。[2]

OSGeo4W

OSGeo4W安装程序可以轻松安装GeoDjango所需的PROJ.4,GDAL和GEOS库。首先,下载OSGeo4W安装程序,然后运行它。选择快速Web-GIS安装,然后单击下一步。在“选择包”列表中,确保选择GDAL; MapServer和Apache也默认启用,但GeoDjango不需要,可以安全地取消选中。单击下一步后,软件包将自动下载并安装,之后您可以退出安装程序。

Modify Windows environment

要使用GeoDjango,您需要将您的Python和OSGeo4W目录添加到您的Windows系统Path,以及创建GDAL_DATAPROJ_LIB环境变量。以下可用cmd.exe可执行的命令将设置为:

set OSGEO4W_ROOT=C:\OSGeo4W
set PYTHON_ROOT=C:\Python27
set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
set PATH=%PATH%;%PYTHON_ROOT%;%OSGEO4W_ROOT%\bin
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /f /d "%PATH%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v GDAL_DATA /t REG_EXPAND_SZ /f /d "%GDAL_DATA%"
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROJ_LIB /t REG_EXPAND_SZ /f /d "%PROJ_LIB%"

为了方便起见,这些命令在可执行批处理脚本geodjango_setup.bat中可用。

注意

执行这些命令需要管理员权限。要执行此操作,请右键点击geodjango_setup.bat,然后选择以管理员身份运行您需要注销并重新登录,以使设置生效。

注意

如果您定制了Python或OSGeo4W安装目录,则需要相应地修改OSGEO4W_ROOT和/或PYTHON_ROOT变量。

Install Django and set up database

最后,在系统上install Django

脚注

[1]GeoDjango使用来自ctypes.utilfind_library()例程来定位共享库。
[2]psycopg2 Windows安装程序由Jason Erickson打包和维护。