ArcGISユーザがPythonの仮想環境を構築する

**対象読者** ArcGISユーザ Python未経験
**PC環境** Windows10

## はじめに

保守契約を結んでいるArcGIS Desktopのライセンスには、[ArcGIS Pro](https://www.esrij.com/products/arcgis-desktop/)というアプリケーションが付属しています。

このArcGIS Proをインストールすると、[Miniconda](https://docs.conda.io/en/latest/miniconda.html)を通してPythonも同時にインストールされます。

Minicondaというのは、仮想環境を構築・管理するためのもので、[Anaconda](https://www.anaconda.com/)の軽量版的な位置づけです。

Python仮想環境やAnacondaについては、[python JapanのPython環境構築ガイド](https://www.python.jp/install/docs/pypi_or_anaconda.html)が参考になります。

実際はArcGIS DesktopにもPythonは付属していますが、バージョンは2系で、しかもパッケージ管理されていない素の状態です。

素の状態でもPythonを使うことができますが、プロジェクト別に仮想環境を構築し、パッケージ管理を行うやり方が一般的です。

Esri社はArcGIS Desktop製品の軸足をMapからProに移しているようですし、Pythonも3系が主流になっているので、ここでは**ArcGIS Proを出発点としたPythonの仮想環境の構築方法**について簡単に説明したいと思います。


## ArcGIS Proのインストール

Esri製品サポートページからインストーラがダウンロードできます。

普段ArcMapしか使っていないという場合は、ArcGIS Proのインストールが必要です。

また、[ArcPy](https://www.esrij.com/gis-guide/arcgis-basic/arcpy/)（ArcGISのジオプロセシングツール等にアクセスするためのパッケージ）を利用する場合は、有効なライセンスでArcGIS Proにログインできている必要があります。


## Pythonとcondaのパスを通す

環境変数にPythonとcondaを登録します。

方法が分からない場合は、「パスを通す」とかで検索してみてください。

なお、**仮想環境 と 環境変数 は全く別物**なので、混同しないように気を付けて下さい。

パスはデフォルトだと、こちらになると思います。

python.exe
`C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3`

conda.exe 
`C:\Program Files\ArcGIS\Pro\bin\Python\Scripts`

登録してから、PCを再起動してください。


## 動作確認

コマンドプロンプトを起動します。（Win + R から cmd で起動）

コマンドプロンプトからPythonを起動します。（python と打って Enter）

```
$ python
```

以下のような表示になればOKです。

```
Python 3.7.9 [MSC v.1922 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 
```

Pythonを抜けます。

```
>>> exit()
```

 
次にconda（パッケージ管理ツール）を起動します。

```
$ conda
```

以下のような表示になればOKです。

```
usage: conda [-h] [-V] command ...

（中略）

other commands, such as "conda build", are available when additional conda
packages (e.g. conda-build) are installed

```

## 仮想環境を作成する

まず、既存の仮想環境の一覧を確認します。

```
$ conda env list
```

```
# conda environments:
#
arcgispro-py3         *  C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3
root                     C:\Program Files\ArcGIS\Pro\bin\Python
```

\* が付いているarcgispro-py3が現在有効になっている仮想環境の名前です。

arcgispro-py3は、ArcGIS Proのための仮想環境です。

次にarcgispro-py3に含まれるパッケージを確認します。

```
$ conda list
```

```
# packages in environment at C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3:
#
appdirs                   1.4.4                      py_0
arcgis                    1.8.3                 py37_1668    esri
arcgispro                 2.7                           0    esri
arcpy                     2.7             py37_arcgispro_26810  [arcgispro]  esri

（後略）
```

ArcPyを含む多数のパッケージが入っていることが分かります。

では、新しい仮想環境を追加します。

```
$ conda create -n [name] python=[version]
```

[name]に仮想環境の名前、[version]にPythonのバージョンを記載します。

例えば

```
$ conda create -n py39 python=3.9
```

途中で、

```
Proceed ([y]/n)?
```
と聞かれるので、yを入力します。

## 仮想環境の有効化

つぎに、有効化されている仮想環境をarcgispro-py3から、新しく作成した仮想環境に切り替えます。

```
$ activate [name]
```

[name]は新しく作成した仮想環境の名前に読み替えて下さい。

環境が切り替わり、プロンプトの頭に(name)が付きます。

有効化した仮想環境のパッケージを確認します。

```
$ conda list
```

```
# packages in environment at C:\Users\***\AppData\Local\py39:
#
ca-certificates           2021.4.13            haa95532_1
certifi                   2020.12.5        py39haa95532_0
openssl                   1.1.1k               h2bbff1b_0
pip                       21.0.1           py39haa95532_0
python                    3.9.4                h6244533_0
setuptools                52.0.0           py39haa95532_0
sqlite                    3.35.4               h2bbff1b_0
tzdata                    2020f                h52ac0ba_0
vc                        14.1                 h0510ff6_4
vs2015_runtime            14.16.27012          hf0eaf9b_0
wheel                     0.36.2             pyhd3eb1b0_0
wincertstore              0.2              py39h2bbff1b_0
```

新規で作成した仮想環境には、必要最低限のパッケージが入っています。

必要に応じて、この仮想環境にパッケージをインストールしていくことになります。

なお、パッケージをインストールする場合は以下のコマンドを使います。

```
$ conda install [package]=[version]
```

[package]にはパッケージの名前、[version]にはパッケージのバージョンを記載します。

例えば、pandasというパッケージのバージョン1.2.3を現在の仮想環境にインストールしたい場合は、以下のコマンドを入力してください。

```
$ conda install pandas=1.2.3
```

## 最後に

以上、Pythonの仮想環境構築までの流れを簡単にまとめました。

ArcGIS Pro -> Miniconda -> Python という方法でPythonを使い始めると、Python3の実行環境がデフォルトでarcgispro-py3になります。

ArcPyを使わないのであれば、新規で仮想環境を構築して使っていくほうがよいでしょう。

また、condaの使い方については一通りどんなコマンドがあるのか調べてみるとよいかと思います。

なお、パッケージのインストールにはpipという方法がありますが、**pipでインストールしたパッケージはcondaで管理できない**ので、pipは使わないように気を付けてください。