---
title: "GeoDjango のインストール"
version: 5.0
locale: ja
source: https://docs.djangoproject.com/ja/5.0/ref/contrib/gis/install/
canonical: https://djangodocs.dev/ja/5.0/ref/contrib/gis/install/
---
# GeoDjango のインストール

## 概要

通常、GeoDjango のインストールには次のものが必要です:

1. [Python と Django](#django)
2. [空間データベース (Spatial database)](#spatial-database)
3. [地理空間ライブラリのインストール](/ja/5.0/ref/contrib/gis/install/geolibs/)

各要件の詳細とインストール手順については、以下のセクションを参照してください。また、プラットフォーム別の手順もあります:

- [macOS](#macos)
- [Windows](#windows)

> **ソースを使う**
>
> GeoDjango はオープンソースの地理空間ソフトウェア技術を最新のものを活用しているため、最新バージョンのライブラリが必要です。プラットフォームにバイナリパッケージが提供されていない場合は、ソースからのインストールが必要になるかもしれません。ソースからライブラリをコンパイルする際には、特に初心者の場合は指示に注意してください。

## 必要条件

### Python と Django

GeoDjango は Django に同梱されていますので、インストール方法の詳細は Django の [インストール手順](/ja/5.0/topics/install/#installing-official-release) を参照してください。

### 空間データベース (Spatial database)

現在サポートされている空間データベースは、PostgreSQL (with PostGIS)、MySQL、Oracle、SQLite (with SpatiaLite) です。

> **Note**
>
> PostGISは、最も成熟した機能豊富なオープンソースの空間データベースであるため、推奨されています。

GeoDjango のインストールに必要な地理空間ライブラリは、使用する空間データベースによって異なります。以下は、サポートされているデータベースバックエンドごとに、必要なライブラリ、サポートされているバージョン、および注意事項 の一覧です:

| データベース | ライブラリの要件 | サポートされるバージョン | 備考 |
| --- | --- | --- | --- |
| PostgreSQL | GEOS, GDAL, PROJ, PostGIS | 12+ | PostGIS が必要です。 |
| MySQL | GEOS, GDAL | 8.0.11+ | [機能制限があります](/ja/5.0/ref/contrib/gis/db-api/#mysql-spatial-limitations) 。 |
| Oracle | GEOS, GDAL | 19+ | XE not supported. |
| SQLite | GEOS, GDAL, PROJ, SpatiaLite | 3.27.0+ | Requires SpatiaLite 4.3+ |

PostgreSQL/PostGIS/GEOS/GDAL の可能な組み合わせについては、OSGeo Wikiの [this comparison matrix](https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS) も参照してください。

## インストール

### 地理空間ライブラリ (Geospatial library)

- [地理空間ライブラリのインストール](/ja/5.0/ref/contrib/gis/install/geolibs/)

### データベースのインストール

- [PostGIS のインストール](/ja/5.0/ref/contrib/gis/install/postgis/)
- [SpatiaLite のインストール](/ja/5.0/ref/contrib/gis/install/spatialite/)

### [`DATABASES`](/ja/5.0/ref/settings/#std-setting-DATABASES) の設定

[`ENGINE`](/ja/5.0/ref/settings/#std-setting-DATABASE-ENGINE) 設定を、[空間 (spatial) バックエンド](/ja/5.0/ref/contrib/gis/db-api/#spatial-backends) の1つに設定してください。

### `django.contrib.gis` を [`INSTALLED_APPS`](/ja/5.0/ref/settings/#std-setting-INSTALLED_APPS) に追加します。

他の Django contrib アプリケーションと同様に、設定の [`INSTALLED_APPS`](/ja/5.0/ref/settings/#std-setting-INSTALLED_APPS) に [`django.contrib.gis`](/ja/5.0/ref/contrib/gis/#module-django.contrib.gis) を追加するだけです。これは `gis` テンプレートを配置するためです。そうしないと、地理管理や KML サイトマップのような機能が正しく動作しません。

## トラブルシューティング

問題の解決策がここに見つからない場合は、コミュニティに参加してみてください！以下のようなことができます:

- [GeoDjango](https://forum.djangoproject.com/c/internals/geodjango/13) フォーラムで質問してください。
- バグがあると思ったら [Django trac](https://code.djangoproject.com/newticket) にチケットを提出してください。  問題の完全な説明、使用したバージョン、コンポーネントを "GIS" と指定してください。

### ライブラリの環境設定

GeoDjango をインストールする際に最もよくある問題は、外部の共有ライブラリ (例えば GEOS や GDAL) が見つからないというものです [^1] 。通常、この問題の原因は、オペレーティングシステムがソースからビルドされたライブラリがインストールされたディレクトリを認識していないことです。

通常、ライブラリのパスは、個々のユーザーごとに環境変数を設定するか、システム全体のライブラリ パスを構成することで設定できます。

#### `LD_LIBRARY_PATH` 環境変数

ユーザーは、使用するライブラリパスをカスタマイズするためにこの環境変数を設定できます。ソースからビルドされたソフトウェアの典型的なライブラリディレクトリは `/usr/local/lib` です。したがって、 `LD_LIBRARY_PATH` 変数に `/usr/local/lib` を含める必要があります。たとえば、ユーザーは次のような設定を bash プロファイルに記述できます:

```shell
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` など) を追加してください。これはその *一つ* の例です:

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

OpenSolaris ユーザーは、`crle` ユーティリティを使ってシステムライブラリのパスを変更できます。オプションなしで `crle` を実行すると現在の設定が表示され、 `crle -l` を使用すると新しいライブラリパスが設定されます。システムライブラリパスを変更する際には、 *非常に* 注意してください:

```shell
# 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 システムでは以下のコマンドを使用してインストールできます:

```shell
$ sudo apt-get install binutils
```

Red Hat および CentOS システムでも同様です:

```shell
$ sudo yum install binutils
```

## プラットフォーム固有の手順

### macOS

macOS では様々なパッケージングシステムが利用できるため、ユーザは GeoDjango をインストールするのにいくつかの異なる選択肢があります。これらのオプションは以下の通りです:

- [Postgres.app](#postgresapp) (最も簡単、推奨)
- [Homebrew](#homebrew)
- [Fink](#fink)
- [MacPorts](#macports)
- [ソースコードからビルドする](/ja/5.0/ref/contrib/gis/install/geolibs/#build-from-source)

このセクションには、Python Software Foundation が提供するパッケージから [Python](#macos-python) のアップグレード版をインストールする手順も含まれていますが、これは必須ではありません。

#### Python

macOSにはPythonがインストールされていますが、Python Software Foundation が提供する [framework installers](https://www.python.org/ftp/python/) を使用することもできます。インストーラーを使用する利点は、macOSのPythonがOS内部で使用するために "原始的" なままであることです。

> **Note**
>
> コマンドラインで `python` を入力したときに新しいバージョンの Python が使われるように、`.profile` ファイルの `PATH` 環境変数を変更する必要があります:
>
> ```shell
> export PATH=/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH
> ```

#### Postgres.app

[Postgres.app](https://postgresapp.com/) は PostGIS 拡張を含むスタンドアロンの PostgreSQL サーバです。また、`gdal` と `libgeoip` を [Homebrew](#homebrew) と共にインストールする必要があります。

Postgres.appをインストールした後、コマンドラインからパッケージのプログラムを実行できるように、 `.bash_profile` に以下を追加してください。 `X.Y` をインストールした Postgres.app の PostgreSQL のバージョンに置き換えてください:

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

ターミナルプロンプトで `which psql` と入力して、パスが正しく設定されているかを確認できます。

#### Homebrew

[Homebrew](https://brew.sh/) は、ソースコードからバイナリおよびパッケージを構築するための「レシピ」を提供します。これは、macOS を実行している Macintosh コンピュータ上で GeoDjango の前提条件のためのレシピを提供しています。Homebrew はソフトウェアをソースコードから構築するため、 [Xcode](https://developer.apple.com/xcode/) が必要となります。

概要:

```shell
$ brew install postgresql
$ brew install postgis
$ brew install gdal
$ brew install libgeoip
```

##### Fink

[Kurt Schwehr](https://schwehr.blogspot.com/) は [Fink](https://www.finkproject.org/) パッケージシステムのユーザーのために GeoDjango パッケージを作成してくれました。使用したい Python のバージョンに応じて、[Different packages are available](https://pdb.finkproject.org/pdb/browse.php?summary=django-gis) です（`django-gis` から始まります）。

#### MacPorts

[MacPorts](https://www.macports.org/) を使うと、macOS を実行しているコンピュータに GeoDjango の依存関係をインストールできます。MacPorts はソフトウェアをソースからビルドするので、 [Xcode](https://developer.apple.com/xcode/) が必要です。

概要:

```shell
$ 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
```

> **Note**
>
> また、MacPorts のプログラムにコマンドラインからアクセスできるように、 `.profile` の `PATH` を変更する必要があります:
>
> ```shell
> export PATH=/opt/local/bin:/opt/local/lib/postgresql13/bin
> ```
>
> さらに、Python がライブラリを見つけられるように、 `DYLD_FALLBACK_LIBRARY_PATH` 設定を追加してください:
>
> ```shell
> export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib:/opt/local/lib/postgresql13
> ```

### Windows

GeoDjango を Windows にインストールするには、以下のセクションを順番に進めてください。このチュートリアルでは、各アプリケーションの 64 ビット版をインストールします。

#### Python

64ビット版のPythonをインストールします。詳しくは [Python のインストール](/ja/5.0/howto/windows/) を参照してください。

#### PostgreSQL

[EnterpriseDB](https://www.enterprisedb.com/downloads/postgres-postgresql-downloads) のウェブサイトから最新の [PostgreSQL 15.x installer](https://www.enterprisedb.com) をダウンロードしてください。ダウンロード後、インストーラーを実行し、画面の指示に従い、デフォルトのオプションを変更するリスクを理解していない限り、変更せずに進んでください。

> **Note**
>
> PostgreSQL のインストーラーは新しい `postgres` データベース管理者ユーザーを作成します。パスワードを設定する際に一度だけ入力を求められます。それを忘れないようにしてください！

インストーラーが完了すると、 "Launch Stack Builder at exit?" （スタックビルダーを終了時に起動しますか？）という質問が表示されます。これは、[PostGIS](#postgisasb) をインストールするために必要ですので、チェックを入れたままにしてください。

> **Note**
>
> インストールが成功すると、PostgreSQL サーバーは Windows サービスとしてシステムが起動するたびにバックグラウンドで実行されます。 PostgreSQL 15 スタートメニューグループが作成され、アプリケーションスタックビルダー (ASB) および "SQL Shell" のショートカットが含まれます。 "SQL Shell" を起動すると `psql` コマンドウィンドウが開きます。

#### PostGIS

Stack Builder (インストーラの外で実行するには Start ‣ PostgreSQL 15 ‣ Application Stack Builder ) から、ドロップダウンメニューから PostgreSQL 15 (x64) on port 5432 を選択して next をクリックします。 Categories ‣ Spatial Extensions メニューツリーを展開し、 PostGIS X.Y for PostgreSQL 15 を選択します。

next をクリックすると、選択したパッケージと "Download directory" を確認するプロンプトが表示されます。もう一度 next をクリックすると、PostGIS がダウンロードされ、next をクリックして PostGIS のインストーラを開始するよう求められます。インストール中はデフォルトのオプションを選択してください。インストールプロセスでは、4つの Yes/No ダイアログボックスが表示されます。

#### OSGeo4W

[OSGeo4W installer](https://trac.osgeo.org/osgeo4w/) は GeoDjango で必要な PROJ、GDAL、GEOS ライブラリのインストールに役立ちます。まず、 [OSGeo4W installer](https://trac.osgeo.org/osgeo4w/) をダウンロードし、実行します。 Express Web-GIS Install を選択し、next をクリックします。 "Select Packages" リストで、GDAL が選択されていることを確認してください。他のパッケージがデフォルトで有効になっている場合、それらは GeoDjango には必要ないので、チェックを外しても大丈夫です。次へをクリックし、ライセンス契約に同意すると、パッケージが自動的にダウンロードされ、インストールされます。

#### Windows 環境変数の変更

GeoDjangoを使用するには、Windowsシステムの `Path` に OSGeo4W ディレクトリを追加し、 `GDAL_DATA` と `PROJ_LIB` の環境変数を作成する必要があります。以下のコマンドセットは、 `cmd.exe` で実行可能で、これを設定します。新しい環境変数を認識させるために、この作業が完了したらデバイスを再起動してください。

```bat
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%"
```

> **Note**
>
> これらのコマンドを実行するには、管理者権限が必要です。これを行うには、管理者としてコマンドプロンプトを実行し、上記のコマンドを入力します。設定を有効にするには、一旦ログアウトし、再度ログインする必要があります。

> **Note**
>
> OSGeo4W のインストールディレクトリをカスタマイズした場合、それに応じて `OSGEO4W_ROOT` 変数を変更する必要があります。

#### Djangoのインストールとデータベースのセットアップ

システムにDjangoを [インストール](/ja/5.0/topics/install/#installing-official-release) します。作成する各プロジェクトに対して [仮想環境](https://docs.python.org/3/tutorial/venv.html) を作成することを推奨します。

#### psycopg

Pythonモジュール `psycopg` は Python と PostgreSQL  データベースのインターフェースを提供します。 `psycopg` は Python 仮想環境内で pip を使用してインストールできます:

```doscon
...\> py -m pip install psycopg
```

**脚注**

[^1]: GeoDjango では、共有ライブラリを探すために `ctypes.util` の [`find_library()`](https://docs.python.org/3/library/ctypes.html#ctypes.util.find_library) ルーチンが使用されています。
