GeoDjango 安裝

概觀

一般來說,GeoDjango 安裝需要

  1. Python 和 Django

  2. 空間資料庫

  3. 安裝地理空間函式庫

以下章節將提供每個需求的詳細資訊和安裝說明。此外,還提供特定平台的說明,適用於

使用原始碼

由於 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 設定

ENGINE 設定為其中一個空間後端

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 使用者身分,在 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

安裝 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。這些選項是

本節還包括從 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 安裝 gdallibgeoip

安裝 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 套件。根據您想要使用的 Python 版本,有不同的套件可供選擇(從 django-gis 開始)。

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

從堆疊產生器內(在安裝程式外執行,開始 ‣ PostgreSQL 15 ‣ 應用程式堆疊產生器),從下拉式功能表中選取 PostgreSQL 15 (x64) on port 5432,然後按一下「下一步」。展開 類別 ‣ 空間擴充功能 功能表樹,然後選取 PostGIS X.Y for PostgreSQL 15

按一下「下一步」後,系統會提示您確認所選套件和「下載目錄」。再次按一下「下一步」,這將下載 PostGIS,系統會要求您按一下「下一步」以開始 PostGIS 安裝程式。在安裝期間選取預設選項。安裝過程包括四個「是/否」對話方塊,所有四個的預設選項都是「否」。

OSGeo4W

OSGeo4W 安裝程式有助於安裝 GeoDjango 所需的 PROJ、GDAL 和 GEOS 函式庫。首先,下載 OSGeo4W 安裝程式,然後執行它。選取 Express Web-GIS Install,然後按一下「下一步」。在「選取套件」清單中,請確保已選取 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 並設定資料庫

在您的系統上安裝 Django。建議您為您建立的每個專案建立虛擬環境

psycopg

psycopg Python 模組提供 Python 和 PostgreSQL 資料庫之間的介面。可以在 Python 虛擬環境中透過 pip 安裝 psycopg

...\> py -m pip install psycopg

註腳

返回頂部