GeoDjangoのインストール—Djangoのドキュメント
GeoDjangoのインストール
概要
一般に、GeoDjangoのインストールには以下が必要です。
各要件とインストール手順の詳細は、以下のセクションに記載されています。 さらに、プラットフォーム固有の手順は次の目的で利用できます。
ソースを使用する
GeoDjangoは最新のオープンソース地理空間ソフトウェアテクノロジーを利用しているため、ライブラリの最新バージョンが必要です。 ご使用のプラットフォームでバイナリパッケージが利用できない場合は、ソースからのインストールが必要になる場合があります。 ソースからライブラリをコンパイルするときは、特に初心者の場合は、指示に厳密に従ってください。
要件
空間データベース
PostgreSQL(PostGISを使用)、MySQL(主にMyISAMエンジンを使用)、Oracle、およびSQLite(SpatiaLiteを使用)は、現在サポートされている空間データベースです。
ノート
PostGISは、最も成熟していて機能が豊富なオープンソースの空間データベースであるため、推奨されます。
GeoDjangoのインストールに必要な地理空間ライブラリは、使用する空間データベースによって異なります。 以下に、ライブラリ要件、サポートされているバージョン、およびサポートされている各データベースバックエンドに関する注意事項を示します。
データベース | ライブラリ要件 | サポートされているバージョン | ノート |
---|---|---|---|
PostgreSQL | GEOS、GDAL、PROJ.4、PostGIS | 9.5+ | PostGISが必要です。 |
MySQL | GEOS、GDAL | 5.6.1+ | 制限された機能。 |
オラクル | GEOS、GDAL | 12.2+ | XEはサポートされていません。 |
SQLite | GEOS、GDAL、PROJ.4、SpatiaLite | 3.8.3+ | SpatiaLite4.3以降が必要 |
PostgreSQL / PostGIS / GEOS / GDALの可能な組み合わせについては、OSGeoWikiのこの比較マトリックスも参照してください。
インストール
地理空間ライブラリ
データベースのインストール
django.contrib.gisをに追加します:setting: `INSTALLED_APPS`
他のDjangocontribアプリケーションと同様に、のみで django.contrib.gis を:setting: `INSTALLED_APPS` に追加する必要があります。 これは、gis
テンプレートを見つけることができるようにするためです。そうしないと、地理管理やKMLサイトマップなどの機能が正しく機能しません。
トラブルシューティング
ここで問題の解決策が見つからない場合は、コミュニティに参加してください。 あなたはできる:
- Freenodeの
#geodjango
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
などの別のディレクトリにあるファイルからの追加パスが含まれる場合があります。 rootユーザーとして、ld.so.conf
の新しい行にカスタムライブラリパス(/usr/local/lib
など)を追加します。 これは、その方法の one の例です。
$ 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システム上の共有ライブラリを検証します。 したがって、binutils
がLinuxシステムにインストールされていない場合、ライブラリパスが正しく設定され、地理空間ライブラリが完全に構築されていても、Pythonのctypesがライブラリを見つけられない可能性があります。
binutils
パッケージは、次のコマンドを使用してDebianおよびUbuntuシステムにインストールできます。
$ sudo apt-get install binutils
同様に、Red HatおよびCentOSシステムでは:
$ sudo yum install binutils
プラットフォーム固有の手順
マックOS
macOSで利用できるパッケージングシステムはさまざまであるため、ユーザーはGeoDjangoをインストールするためのいくつかの異なるオプションを利用できます。 これらのオプションは次のとおりです。
- Postgres.app (最も簡単で推奨)
- 自作
- KyngChaosパッケージ
- フィンク
- MacPorts
- ソースからのビルド
このセクションには、Python SoftwareFoundationが提供するパッケージからアップグレードバージョンの Python をインストールする手順も含まれていますが、これは必須ではありません。
Python
macOSにはPythonがインストールされていますが、ユーザーはPython SoftwareFoundationが提供するフレームワークインストーラーを使用できます。 インストーラーを使用する利点は、macOSのPythonが内部オペレーティングシステムで使用するために「元の状態」のままになることです。
ノート
コマンドラインでpython
を入力したときに新しいバージョンのPythonが使用されるように、.profile
ファイルのPATH
環境変数を変更する必要があります。
export PATH=/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH
Postgres.app
Postgres.app は、PostGIS拡張機能を含むスタンドアロンのPostgreSQLサーバーです。 また、gdal
とlibgeoip
を Homebrew と一緒にインストールする必要があります。
Postgres.appをインストールした後、.bash_profile
に以下を追加して、コマンドラインからパッケージのプログラムを実行できるようにします。 X.Y
を、インストールしたPostgres.appのPostgreSQLのバージョンに置き換えます。
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/X.Y/bin
ターミナルプロンプトでwhich psql
と入力すると、パスが正しく設定されているかどうかを確認できます。
自作
Homebrew は、ソースからバイナリとパッケージを構築するための「レシピ」を提供します。 macOSを実行しているMacintoshコンピューターでのGeoDjangoの前提条件のレシピを提供します。 Homebrewは引き続きソフトウェアをソースからビルドするため、 Xcode が必要です。
概要:
$ brew install postgresql
$ brew install postgis
$ brew install gdal
$ brew install libgeoip
KyngChaosパッケージ
William Kyngesburyeは、GeoDjangoをソースからコンパイルせずにmacOSにインストールするのに役立つ地理空間ライブラリバイナリパッケージを多数提供しています。 ただし、Pythonデータベースアダプター psycopg2 (PostGIS用)をコンパイルするには、 Xcode が引き続き必要です。
次のフレームワークパッケージをダウンロードします。
- 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
をインストールできます。
$ python -m pip install psycopg2
フィンク
Kurt Schwehr は、 Fink パッケージシステムのユーザー向けにGeoDjangoパッケージを作成するのに十分なほど親切でした。 使用するPythonのバージョンに応じて、さまざまなパッケージが利用可能です(django-gis
以降)。
MacPorts
MacPorts を使用して、macOSを実行しているコンピューターにGeoDjangoの前提条件をインストールできます。 MacPortsは引き続きソフトウェアをソースからビルドするため、 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
ノート
また、.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にGeoDjangoをインストールするには、次のセクションに順番に進んでください。
PostgreSQL
まず、 EnterpriseDB のWebサイトから最新の PostgreSQL9.xインストーラーをダウンロードします。 ダウンロード後、インストーラーを実行し、画面の指示に従い、変更の結果がわからない限り、デフォルトのオプションを保持します。
ノート
PostgreSQLインストーラーは、「postgresサービスアカウント」とpostgres
データベーススーパーユーザーの両方になる新しいWindowsユーザーを作成します。両方のアカウントのパスワードを設定するように求められます。忘れないでください。
インストーラーが完了すると、終了時にApplication Stack Builder(ASB)を起動するように求められます。 PostGIS をインストールする必要があるため、これをオンのままにしてください。
ノート
正常にインストールされると、システムがWindowsサービスとして開始されるたびに、PostgreSQLサーバーがバックグラウンドで実行されます。 psql
コマンドウィンドウを起動する「SQLシェル」が含まれます。
PostGIS
Application Stack Builder内から(インストーラーの外部で実行するには、
)、ドロップダウンからポート5432 PostgreSQLデータベースサーバー9.xを選択します。メニュー。 次に、 メニューツリーを展開し、 を選択します。[次へ]をクリックすると、ミラーを選択するように求められ、PostGISがダウンロードされ、PostGISインストーラーが起動します。 インストール中にデフォルトのオプションのみを選択します(たとえば、デフォルトのPostGISデータベースを作成するオプションのチェックを外さないでください)。
ノート
[データベース接続情報]ダイアログで、postgres
データベーススーパーユーザーのパスワードを入力するように求められます。
psycopg2
psycopg2
Pythonモジュールは、PythonとPostgreSQLデータベース間のインターフェースを提供します。 お使いのバージョンのPythonおよびPostgreSQL用の最新の Windowsインストーラーをダウンロードし、デフォルト設定を使用して実行します。 2
OSGeo4W
OSGeo4Wインストーラーは、GeoDjangoに必要なPROJ.4、GDAL、およびGEOSライブラリのインストールに役立ちます。 まず、 OSGeo4Wインストーラーをダウンロードして実行します。 を選択し、[次へ]をクリックします。 [パッケージの選択]リストで、GDALが選択されていることを確認します。 MapServerとApacheもデフォルトで有効になっていますが、GeoDjangoでは必須ではなく、安全にチェックを外すことができます。 [次へ]をクリックすると、パッケージが自動的にダウンロードおよびインストールされます。その後、インストーラーを終了できます。
Windows環境を変更する
GeoDjangoを使用するには、PythonおよびOSGeo4WディレクトリをWindowsシステムPath
に追加し、GDAL_DATA
およびPROJ_LIB
環境変数を作成する必要があります。 cmd.exe
で実行可能な次の一連のコマンドは、これを設定します。
set OSGEO4W_ROOT=C:\OSGeo4W
set PYTHON_ROOT=C:\Python3X
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%"
ノート
これらのコマンドを実行するには、管理者権限が必要です。 これを行うには、コマンドを使用してbat
スクリプトを作成し、それを右クリックして、 を選択します。 設定を有効にするには、ログアウトしてから再度ログインする必要があります。
ノート
PythonまたはOSGeo4Wのインストールディレクトリをカスタマイズした場合は、それに応じてOSGEO4W_ROOT
またはPYTHON_ROOT
変数を変更する必要があります。
Djangoをインストールし、データベースをセットアップします
最後に、システムにDjango をインストールします。
脚注
- 1
- GeoDjangoは、
ctypes.util
のfind_library()
ルーチンを使用して、共有ライブラリを検索します。 - 2
psycopg2
Windowsインストーラーは、 Jason Erickson によってパッケージ化および保守されています。