geodjango安装

概述

一般来说,geodjango安装需要:

  1. Python and Django

  2. 空间数据库

  3. 安装地理空间库

以下各节提供了每个要求和安装说明的详细信息。此外,平台特定的说明可用于:

使用源

由于geodjango利用了最新的开源地理空间软件技术,因此需要最新版本的库。如果您的平台没有二进制软件包,则可能需要从源代码安装。当从源代码处编译库时,请严格遵循说明,特别是如果您是初学者。

要求

Python 和 Django

因为geodjango包含在django中,请参阅django的 installation instructions 有关如何安装的详细信息。

空间数据库

目前支持的空间数据库有PostgreSQL(带PostGIS)、MySQL、Oracle和SQLite(带SpatiaLite)。

备注

由于PostGIS是最成熟、功能最丰富的开放源码空间数据库,因此推荐使用PostGIS。

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

数据库

类库要求

支持的版本

笔记

《PostgreSQL》

GEOS、GDAL、项目、PostGIS

13+

需要Postgis。

MySQL

GEOL

8.0.11+

Limited functionality .

甲骨文公司

GEOL

19+

不支持XE。

SQLite

GEOS、GDAL、项目、SpatiaLite

3.27.0+

需要Spatialite 4.3+

也见 `this comparison matrix`_ _在osgeo wiki上查找postgresql/postgis/geos/gdal可能的组合。

安装

地理空间库

数据库安装

DATABASES 配置

设置 ENGINE 设置为 spatial backends .

添加 django.contrib.gisINSTALLED_APPS

像其他Django-Contrib应用程序一样,您将 only 需要添加 django.contrib.gisINSTALLED_APPS 在您的设置中。这是因为 gis 可以找到模板——如果不这样做,那么地理管理或kml站点地图等功能将无法正常工作。

故障排除

如果你在这里找不到解决问题的方法,那就加入社区吧!你可以:

  • 加入 #django-geo Libera.Chat上的IRC频道。请有耐心和礼貌--虽然你可能不会立即得到回答,但有人一看到你的问题就会试图回答你。

  • 请在以下位置提问 `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 。作为根用户,添加自定义库路径(如 /usr/local/lib )中的新行 ld.so.conf 。这是 one 如何执行此操作的示例:

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

对于OpenSolaris用户,可以使用 crle 实用程序。跑 crle 没有查看当前配置和使用 crle -l 若要使用新的库路径设置,请执行以下操作。vt.是,是 very 修改系统库路径时要小心:

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

安装 binutils

geodjango使用 find_library 功能(来自 ctypes.util python模块)来发现库。这个 find_library 例程使用一个名为 objdump (部分) binutils package)验证GNU/Linux系统上的共享库。因此,如果 binutils 如果没有安装在Linux系统上,那么即使库路径设置正确并且地理空间库构建完美,python的ctypes也可能找不到库。

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

$ sudo apt-get install binutils

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

$ sudo yum install binutils

平台特定说明

马科斯

由于MacOS的包装系统多种多样,用户可以选择安装geodjango。这些选项包括:

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

Python

虽然MacOS安装了python,但用户可以使用 `framework installers`_ 由Python软件基金会提供。使用安装程序的一个优点是MacOS的python对于内部操作系统的使用仍然是“原始的”。

备注

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

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

Postgres.app

Postgres.app 是一个独立的PostgreSQL服务器,包含PostGIS扩展。您还需要安装 gdallibgeoip 具有 自酿啤酒 .

安装postgres.app后,将以下内容添加到 .bash_profile 所以您可以从命令行运行包的程序。替换 X.Y 在postgres.app中安装了postgresql版本:

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/X.Y/bin

您可以通过键入来检查路径设置是否正确。 which psql 在终端提示下。

自酿啤酒

`Homebrew`__ provides "recipes" for building binaries and packages from source. It provides recipes for the GeoDjango prerequisites on Macintosh computers running macOS. Because Homebrew still builds the software from source, Xcode 是必需的。

摘要:

$ brew install postgresql
$ brew install postgis
$ brew install gdal
$ brew install libgeoip
芬克

Kurt Schwehr _已经足够优雅地为用户创建geodjango包 Fink _包装系统。 `Different packages are available`_ _(从 django-gis ,取决于要使用的Python版本。

MacPorts

`MacPorts`__ may be used to install GeoDjango prerequisites on computers running macOS. Because MacPorts still builds the software from source, 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

备注

您还必须修改 PATH 在你的 .profile 以便可以从命令行访问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。看到了吗 Install Python 更多信息。

《PostgreSQL》

下载最新版本 `PostgreSQL 15.x installer`__`EnterpriseDB`__ 网站。下载后,运行安装程序,按照屏幕上的说明操作,并保留默认选项,除非您知道更改它们的后果。

备注

PostgreSQL安装程序将创建一个新的 postgres 数据库超级用户将提示您设置密码一次--请记住!

安装程序完成后,它将要求“在退出时启动堆栈生成器?”--请检查此项,因为需要安装 PostGIS .

备注

如果安装成功,每次系统作为Windows服务启动时,PostgreSQL服务器都将在后台运行。一个 PostgreSQL 15 将创建开始菜单组,其中包含应用程序堆栈生成器(ASB)的快捷方式以及将启动 psql 命令窗口。

PostGIS

在Stack Builder内(要在安装程序之外运行, Start ‣ PostgreSQL 15 ‣ Application Stack Builder ),选择 PostgreSQL 15 (x64) on port 5432 从下拉菜单中选择,然后单击下一步。扩展 Categories ‣ Spatial Extensions 菜单树并选择 PostGIS X.Y for PostgreSQL 15

点击“下一步”后,系统将提示您确认所选的程序包和“下载目录”。再次单击下一步,这将下载PostGIS,您将被要求单击下一步开始PostGIS安装程序。在安装过程中选择默认选项。安装过程包括四个Yes/No(是/否)对话框,所有四个对话框的默认选项都是“No”。

OSGOW4W

这个 OSGeo4W installer 帮助安装GeoDjango所需的项目、GDAL和GEOS库。首先,下载 OSGeo4W installer ,并运行它。选择 Express Web-GIS Install 然后单击下一步。在‘Select Packages’列表中,确保选择了GDAL。如果默认启用了任何其他包,则GeoDjango不需要它们,并且可以安全地取消选中。单击下一步并接受许可协议后,程序包将自动下载并安装,之后您可以退出安装程序。

修改Windows环境

为了使用GeoDjango,您需要将OSGeo4W目录添加到Windows系统中 Path 以及创建 GDAL_DATAPROJ_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并建立数据库

Install Django 在你的系统上。建议您创建一个 virtual environment 对于您创建的每个项目。

精神病人

这个 psycopg PYTHON模块提供了PYTHON和PostgreSQL数据库之间的接口。 psycopg 可以通过PIP在您的Python虚拟环境中安装:

...\> py -m pip install psycopg

脚注