GeoDjango 安装¶
概述¶
通常,GeoDjango 安装需要
下面各节提供了每个需求的详细信息和安装说明。此外,还提供了针对以下平台的特定说明:
使用源代码
由于 GeoDjango 利用了开源地理空间软件技术的最新成果,因此需要最新版本的库。如果您的平台上没有提供二进制软件包,则可能需要从源代码安装。从源代码编译库时,请仔细按照说明操作,尤其是在您是初学者的情况下。
需求¶
Python 和 Django¶
由于 GeoDjango 包含在 Django 中,请参阅 Django 的安装说明,了解有关如何安装的详细信息。
空间数据库¶
目前支持的空间数据库包括 PostgreSQL(带有 PostGIS)、MySQL、Oracle 和 SQLite(带有 SpatiaLite)。
注意
推荐使用 PostGIS,因为它是最成熟和功能最丰富的开源空间数据库。
GeoDjango 安装所需的地理空间库取决于所使用的空间数据库。以下是每个受支持数据库后端的库需求、受支持版本以及任何说明:
数据库 |
库需求 |
支持的版本 |
说明 |
---|---|---|---|
PostgreSQL |
GEOS、GDAL、PROJ、PostGIS |
13+ |
需要 PostGIS。 |
MySQL |
GEOS、GDAL |
8.0.11+ |
功能有限. |
Oracle |
GEOS、GDAL |
19+ |
不支持 XE。 |
SQLite |
GEOS、GDAL、PROJ、SpatiaLite |
3.31.0+ |
需要 SpatiaLite 4.3+ |
另见 OSGeo Wiki 上关于 PostgreSQL/PostGIS/GEOS/GDAL 可能组合的此比较矩阵。
安装¶
地理空间库¶
数据库安装¶
DATABASES
配置¶
将django.contrib.gis
添加到INSTALLED_APPS
¶
与其他 Django contrib 应用程序一样,您只需将django.contrib.gis
添加到INSTALLED_APPS
即可。这样可以找到gis
模板——如果没有这样做,则地理管理或 KML 站点地图等功能将无法正常工作。
故障排除¶
如果您在此处找不到问题的解决方案,请参与社区!您可以
在GeoDjango 论坛上提问。
如果您认为存在错误,请在Django trac上提交工单。请务必提供问题的完整描述、使用的版本,并将组件指定为“GIS”。
库环境设置¶
到目前为止,安装 GeoDjango 时最常见的问题是无法找到外部共享库(例如,用于 GEOS 和 GDAL 的库)。[1] 通常,此问题的根本原因是操作系统不知道从源代码安装的库所在的目录。
通常,可以通过设置环境变量或配置整个系统的库路径来设置每个用户的库路径。
LD_LIBRARY_PATH
环境变量¶
用户可以设置此环境变量来自定义他们要使用的库路径。从源代码构建的软件的典型库目录是/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 模块)来查找库。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
特定于平台的说明¶
macOS¶
由于 macOS 提供了各种打包系统,因此用户可以使用多种不同的方法来安装 GeoDjango。这些选项包括:
Postgres.app(最简单且推荐的方法)
本节还包括使用 Python 软件基金会提供的软件包安装升级版本的Python的说明,但这并非必需。
Python¶
尽管 macOS 自带 Python,但用户可以使用 Python 软件基金会提供的框架安装程序。使用安装程序的一个优点是,macOS 的 Python 将保持“原始状态”,用于内部操作系统使用。
注意
您需要修改.profile
文件中的PATH
环境变量,以便在命令行输入python
时使用新版本的 Python。
export PATH=/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH
Postgres.app¶
Postgres.app 是一个独立的 PostgreSQL 服务器,其中包含 PostGIS 扩展。您还需要使用Homebrew安装gdal
和libgeoip
。
安装 Postgres.app 后,将以下内容添加到您的.bash_profile
中,以便您可以从命令行运行软件包的程序。将X.Y
替换为您安装的 Postgres.app 中的 PostgreSQL 版本:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/X.Y/bin
您可以在终端提示符下键入which psql
来检查路径是否设置正确。
Homebrew¶
Homebrew 提供了用于从源代码构建二进制文件和软件包的“配方”。它为运行 macOS 的 Macintosh 电脑上的 GeoDjango 先决条件提供了配方。因为 Homebrew 仍然从源代码构建软件,所以需要 Xcode。
摘要
$ brew install postgresql
$ brew install postgis
$ brew install gdal
$ brew install libgeoip
Fink¶
Kurt Schwehr 慷慨地为 Fink 软件包系统的用户创建了 GeoDjango 软件包。提供了不同的软件包(从 django-gis
开始),取决于您要使用的 Python 版本。
MacPorts¶
可以使用 MacPorts 在运行 macOS 的计算机上安装 GeoDjango 先决条件。因为 MacPorts 仍然从源代码构建软件,所以需要 Xcode。
摘要
$ sudo port install postgresql13-server
$ sudo port install geos
$ sudo port install proj6
$ sudo port install postgis3
$ sudo port install gdal
$ sudo port install libgeoip
注意
您还需要修改 .profile
文件中的 PATH
,以便从命令行访问 MacPorts 程序。
export PATH=/opt/local/bin:/opt/local/lib/postgresql13/bin
此外,请添加 DYLD_FALLBACK_LIBRARY_PATH
设置,以便 Python 可以找到这些库。
export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib:/opt/local/lib/postgresql13
Windows¶
按照顺序依次执行以下各节,以便在 Windows 上安装 GeoDjango。在本教程中,我们将安装每个应用程序的 64 位版本。
Python¶
安装 64 位版本的 Python。有关更多信息,请参见 安装 Python。
PostgreSQL¶
从 EnterpriseDB 网站下载最新的 PostgreSQL 15.x 安装程序。下载后,运行安装程序,按照屏幕上的说明操作,并保留默认选项,除非您了解更改这些选项的后果。
注意
PostgreSQL 安装程序会创建一个新的 postgres
数据库超级用户。系统会提示您一次设置密码——请务必记住它!
安装程序完成后,它会询问“退出时启动 Stack Builder?”——请保持选中状态,因为这对于安装 PostGIS 是必要的。
注意
如果安装成功,PostgreSQL 服务器将在每次系统启动时作为 Windows 服务在后台运行。“PostgreSQL 15”开始菜单组将被创建,其中包含应用程序堆栈构建器 (ASB) 以及“SQL Shell”的快捷方式,后者将启动一个 psql
命令窗口。
PostGIS¶
在堆栈构建器中(要在安装程序外部运行,请执行
),从下拉菜单中选择 ,然后单击下一步。展开 菜单树,然后选择 。单击下一步后,系统会提示您确认所选软件包和“下载目录”。再次单击下一步,这将下载 PostGIS,然后系统会要求您单击下一步以开始 PostGIS 安装程序。在安装过程中选择默认选项。安装过程包括四个“是/否”对话框,所有四个对话框的默认选项均为“否”。
OSGeo4W¶
OSGeo4W 安装程序 有助于安装 GeoDjango 所需的 PROJ、GDAL 和 GEOS 库。首先,下载 OSGeo4W 安装程序 并运行它。选择 并单击下一步。在“选择软件包”列表中,确保选中 GDAL。如果默认情况下启用了任何其他软件包,则 GeoDjango 不需要这些软件包,可以安全地取消选中。单击下一步并接受许可协议后,软件包将自动下载并安装,之后您可以退出安装程序。
修改 Windows 环境¶
为了使用 GeoDjango,您需要将 OSGeo4W 目录添加到 Windows 系统 Path
,并创建 GDAL_DATA
和 PROJ_LIB
环境变量。可以使用 cmd.exe
执行以下命令集来进行设置。完成后重新启动设备,以便识别新的环境变量。
set OSGEO4W_ROOT=C:\OSGeo4W
set GDAL_DATA=%OSGEO4W_ROOT%\apps\gdal\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
set PATH=%PATH%;%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%"
注意
执行这些命令需要管理员权限。为此,请以管理员身份运行命令提示符并输入上述命令。您需要注销并重新登录才能使设置生效。
注意
如果您自定义了 OSGeo4W 安装目录,则需要相应地修改 OSGEO4W_ROOT
变量。
安装 Django 并设置数据库¶
psycopg¶
psycopg
Python 模块提供了 Python 和 PostgreSQL 数据库之间的接口。psycopg
可以通过 pip 在您的 Python 虚拟环境中安装。
...\> py -m pip install psycopg
脚注