一般来说,GeoDjango安装需要:
每个要求和安装说明的详细信息在以下部分中提供。 此外,平台特定的指令可用于:
使用源
因为GeoDjango利用了最新的开源地理空间软件技术,所以最近版本的库是必要的。 如果二进制包不适用于您的平台,则可能需要从源安装。 当从源代码编译库时,请按照指示进行操作,特别是如果你是初学者。
PostgreSQL(使用PostGIS),MySQL(主要使用MyISAM引擎),Oracle和SQLite(使用SpatiaLite)是当前支持的空间数据库。
注
PostGIS是推荐的,因为它是最成熟和功能丰富的开源空间数据库。
GeoDjango安装所需的地理空间库取决于所使用的空间数据库。 以下列出了库要求,受支持的版本以及每个受支持的数据库后端的任何注释:
数据库 | 图书馆要求 | 支持的版本 | 笔记 |
---|---|---|---|
PostgreSQL | GEOS,GDAL,PROJ.4,PostGIS | 9.3+ | 需要PostGIS。 |
MySQL | GEOS,GDAL | 5.5+ | 不符合OGC标准; limited functionality。 |
Oracle | GEOS,GDAL | 11.2及更高版本 | XE不支持。 |
SQLite | GEOS,GDAL,PROJ.4,SpatiaLite | 3.6 | 需要SpatiaLite 4.0+,pysqlite2 2.5+ |
另请参见OSGeo Wiki上针对PostgreSQL / PostGIS / GEOS / GDAL可能组合的此比较矩阵。
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站点地图等功能将无法正常运行。
如果你在这里找不到你的问题的解决方案,那么参加社区! 您可以:
#geodjango
IRC频道。 请耐心和礼貌 - 虽然你可能不会立即回应,有人会尽快回答你的问题,一旦他们看到它。到目前为止,安装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
在GNU / Linux系统上,通常在/etc/ld.so.conf
中有一个文件,它可能包括另一个目录中的文件的其他路径,例如/etc/ld.so.conf.d
。
作为root用户,在/usr/local/lib
中的新行上添加自定义库路径(如ld.so.conf
)。 这是一个示例如何这样做:
$ sudo echo /usr/local/lib >> /etc/ld.so.conf
$ sudo ldconfig
对于OpenSolaris用户,可以使用crle
实用程序修改系统库路径。 运行crle
,无任何选项可查看当前配置,并使用crle -l 。
修改系统库路径时,非常:
# crle -l $OLD_PATH:/usr/local/lib
binutils
¶GeoDjango使用find_library
函数(来自ctypes.util
Python模块)来发现库。 binutils
例程使用称为objdump
的程序(find_library
包的一部分)来验证GNU / Linux系统上的共享库。 因此,如果您的Linux系统上没有安装binutils
,Python的ctypes可能无法找到您的库,即使您的库路径设置正确,地理空间库也是完美的。
可以使用以下命令在Debian和Ubuntu系统上安装binutils
软件包:
$ sudo apt-get install binutils
同样,在Red Hat和CentOS系统上:
$ sudo yum install binutils
由于可用于macOS的各种包装系统,用户可以使用几种不同的安装GeoDjango选项。 这些选项是:
本节还包括从Python软件基金会提供的软件包安装升级版本的Python的说明,但这不是必需的。
虽然macOS随Python安装,用户可以使用Python软件基金会提供的框架安装程序。 使用安装程序的一个优点是,MacOS的Python将保持“原始”的内部操作系统使用。
注
您需要修改python
文件中的.profile
环境变量,以便在输入PATH
时使用新版本的Python命令行:
export PATH=/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH
Postgres.app是一个独立的PostgreSQL服务器,其中包含PostGIS扩展。 您还需要使用Homebrew安装gdal
和libgeoip
。
安装Postgres.app后,将以下内容添加到.bash_profile
中,以便您可以从命令行运行程序包的程序。 在您安装的Postgres.app中使用PostgreSQL的版本替换X.Y
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/X.Y/bin
您可以在终端提示符下键入 psql
来检查路径设置是否正确。
Homebrew提供了用于从源代码构建二进制和包的“食谱”。 它为运行macOS的Macintosh计算机提供了GeoDjango先决条件的配方。 因为Homebrew仍然从源代码生成软件,所以需要使用Xcode。
概要:
$ brew install postgresql
$ brew install postgis
$ brew install gdal
$ brew install libgeoip
William Kyngesburye提供了一些地理空间库二进制包,使得在没有从源代码编译的情况下,将GeoDjango安装到macOS上是很简单的。 但是,为了编译Python数据库适配器psycopg2(对于PostGIS)和pysqlite2(对于SpatiaLite),仍然需要Xcode。
注
SpatiaLite用户在安装软件包以获取更多说明之后,请参阅macOS-specific instructions部分。
下载以下框架包:
按照上面列出的顺序安装软件包,因为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
如上所述,在安装了KyngChaos二进制文件并修改了PATH
之后,可以使用以下命令安装psycopg2
:
$ pip install psycopg2
注
如果您没有pip
,请按照installation instructions安装。
MacPorts可用于在运行macOS的计算机上安装GeoDjango先决条件。 因为MacPort仍然从源代码构建软件,所以需要Xcode。
概要:
$ 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
注
您还必须修改PATH
中的.profile
,以便可以从命令行访问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上安装GeoDjango。
首先,从EnterpriseDB网站下载最新的PostgreSQL 9.x安装程序。 下载后,只需运行安装程序,按照屏幕上的说明操作,并保留默认选项,除非您知道更改它们的后果。
注
PostgreSQL安装程序创建一个新的Windows用户为“postgres服务帐户”和一个postgres
数据库超级用户您将被提示一次设置两个帐户的密码 - 确保记住它!
安装程序完成后,将要求在退出时启动应用程序堆栈生成器(ASB) - 保持此选中状态,因为必须安装PostGIS。
注
如果安装成功,PostgreSQL服务器将在每次系统作为Windows服务启动时在后台运行。
将创建一个psql
命令窗口。 开始菜单组,并包含ASB和“SQL Shell”的快捷方式,它将启动
从应用程序堆栈生成器(要在安装程序外部运行, ),从端口5432选择接下来,展开 菜单树,然后选择 。
单击下一步后,将提示您选择镜像,PostGIS将下载,PostGIS安装程序将开始。 在安装过程中只选择默认选项(例如,不要取消选中创建默认PostGIS数据库的选项)。
注
系统将提示您在“数据库连接信息”对话框中输入您的postgres
数据库超级用户密码。
psycopg2
Python模块提供了Python和PostgreSQL数据库之间的接口。 为您的Python和PostgreSQL版本下载最新的Windows安装程序,并使用默认设置运行。 [2]
OSGeo4W安装程序可以轻松安装GeoDjango所需的PROJ.4,GDAL和GEOS库。 首先,下载OSGeo4W安装程序,然后运行它。 选择 ,然后单击下一步。在“选择包”列表中,确保选择GDAL; MapServer和Apache也默认启用,但GeoDjango不需要,可以安全地取消选中。 单击下一步后,软件包将自动下载并安装,之后您可以退出安装程序。
要使用GeoDjango,您需要将您的Python和OSGeo4W目录添加到您的Windows系统PROJ_LIB
,以及创建GDAL_DATA
和Path
环境变量。 以下可用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。
脚注
[1] | GeoDjango使用来自ctypes.util 的find_library() 例程来定位共享库。 |
[2] | psycopg2 Windows安装程序由Jason Erickson打包和维护。 |
2017年9月6日