日本語

操作手順: ArcGIS Python API をインストールするためにローカル Conda チャンネルを設定する

概要

ArcGIS Python API は、Python 開発者のための一般的なパッケージおよび環境管理システムである Conda を用いて配布されます。 この API のインストールについては、推奨される方法の概略が「ArcGIS API for Python ガイド」に記載されています。 ネットワークに接続されていないコンピューター上または孤立したネットワーク内のワークステーション上にこの API をインストールする場合のインストール手順については、このガイドの「オフライン インストール」セクションをご参照ください。

非接続環境で Miniconda から (たとえば、Miniconda を利用する ArcGIS Pro の Python コマンド プロンプトから) この API を使用する上級ユーザーの方は、各自の施設内にローカル Conda チャンネルを作成して、そのチャンネルから API をインストールすることをお勧めします。 ローカル チャンネルには、この API で必要とされる有限の依存関係のセットが含まれます。 ユーザーは、このチャンネルを用いて任意の数の追加の Python パッケージをダウンロードおよびホストすることができます。

この記事では、ArcGIS Python API を取得するためのオフラインの Conda チャンネルを作成する手順について説明します。 インターネット接続が存在するコンピューター、インストール済みの Anaconda、requests パッケージがインストールされた Python 3.5 シェルが必要となることにご留意ください。

手順

この技術情報記事には、arcgis_v1_dependencies (ArcGIS Python API に関する依存関係をリストしているテキスト ファイル) と download_dependencies (anaconda チャンネルから依存関係をダウンロードするための Python スクリプト) という 2 つのファイルが付属しています。 下記の手順を開始する前に、これらのサポート ファイルをダウンロードします。

  • arcgis_v1_dependencies.txt
  • download_dependencies.py

ダウンロードした Python スクリプトを実行するための環境の設定

Anaconda をインストールします。 ご使用の端末で次のコマンドを root 環境で実行して、必要な conda-build および requests パッケージをインストールします。
$ conda install conda-build
$ conda install requests
これで、新しい環境がアクティブになり、使用できるようになります。
 

依存関係のダウンロード

付属する Python スクリプトとテキスト ファイルを同じ場所にダウンロードします。 次に示すように、添付の download_dependencies.py スクリプトを実行します。
$ python download_dependencies.py
このスクリプトによって、anaconda.org のオンライン チャンネルからすべての依存関係がダウンロードされ、ローカルに格納されます。 スクリプトを実行すると、次のような出力が作成されます。
Using environment list file: .\ arcgis_v1_dependencies.txt
Getting  _nb_ext_conf-0.3.0-py35_0.tar.bz2
     Downloaded win-64\_nb_ext_conf-0.3.0-py35_0.tar.bz2
     Downloaded win-32\_nb_ext_conf-0.3.0-py35_0.tar.bz2
     Downloaded linux-64\_nb_ext_conf-0.3.0-py35_0.tar.bz2
     Downloaded linux-32\_nb_ext_conf-0.3.0-py35_0.tar.bz2
     Error with download: osx-32 : 
     Downloaded osx-64\_nb_ext_conf-0.3.0-py35_0.tar.bz2
Getting  anaconda-client-1.5.5-py35_0.tar.bz2
     Downloaded win-64\anaconda-client-1.5.5-py35_0.tar.bz2
     Downloaded win-32\anaconda-client-1.5.5-py35_0.tar.bz2
     Downloaded linux-64\anaconda-client-1.5.5-py35_0.tar.bz2
     Downloaded linux-32\anaconda-client-1.5.5-py35_0.tar.bz2
     Error with download: osx-32 : 
     Downloaded osx-64\anaconda-client-1.5.5-py35_0.tar.bz2
....
ダウンロードに伴い、次の構造のフォルダーが作成されます。
\\channel_root\
  \linux-64
  \linux-32
  \osx-64
  \osx-32
  \win-64
  \win-32
  \noarch


ローカル Conda チャンネルのインデックスの構築

スクリプトが完了したら、Conda はこの場所のインデックスを構築する必要があります。 Conda は、存在するパッケージの概略を示すこれらの個々のフォルダー内にマニフェスト ファイルである repodata.json を構築します。 これにより、ユーザーのコンピューター上で Conda がこの場所をローカル チャンネルと見なして、インターネットではなくこの場所からパッケージを検索してインストールできるようにします。

次のコマンドを入力して、インデックスを構築します。
$ conda index \\path\to\channel\win-64
$ conda index \\path\to\channel\win-32
$ conda index \\path\to\channel\linux-64
$ conda index \\path\to\channel\linux-32
$ conda index \\path\to\channel\osx-64
$ conda index \\path\to\channel\osx-32
$ conda index \\path\to\channel\noarch
コマンドを実行すると、次のような出力が示されます。
$ conda index \\path\to\channel\win-64
  updating index in: \\path\to\channel\win-64
  updating: pywin32-220-py35_1.tar.bz2
  updating: nb_conda_kernels-2.0.0-py35_0.tar.bz2
  updating: requests-2.12.1-py35_0.tar.bz2
  updating: pyzmq-16.0.2-py35_0.tar.bz2
  updating: _nb_ext_conf-0.3.0-py35_0.tar.bz2
  updating: ipywidgets-5.2.2-py35_0.tar.bz2
  updating: decorator-4.0.10-py35_0.tar.bz2
  ....
このステップが完了したら、ネットワークに接続された場所または Web サーバーに root フォルダーを移動するか、このフォルダーをローカル Conda チャンネルとしてローカルで使用します。
 

ローカル Conda チャンネルからのインストール

ネットワークに接続されていないコンピューター上に Anaconda または Miniconda をインストールします。 次に、ローカル チャンネルでパッケージを検索して、このチャンネルが正常に動作することを確認します。
$ conda search --channel file://path/to/channel --override-channels
たとえば、Windows コンピューター上では、コマンドは次のようになります。
$ conda search --channel D:/code/arcgis_offline_downloads/channel --override-channels
コマンドを実行すると、次のような結果が返されます。
$ conda search --channel file://offline/arcgis_channel/channel --override-channels
Fetching package metadata .....
_nb_ext_conf                 0.3.0                    py35_0  file://offline/arcgis_channel/channel
anaconda-client              1.5.5                    py35_0  file://offline/arcgis_channel/channel
arcgis                       0.9                      py35_1  file://offline/arcgis_channel/channel
clyent                       1.2.2                    py35_0  file://offline/arcgis_channel/channel
colorama                     0.3.7                    py35_0  file://offline/arcgis_channel/channel
decorator                    4.0.10                   py35_0  file://offline/arcgis_channel/channel
...
これで、ArcGIS とそのすべての依存関係が検索可能になったため、インストール処理を続行できます。 新規の Conda 環境を作成するか、root 環境で arcgis パッケージをインストールします。
conda create --name awesome_arcgis python [this step is optional]
次に、Conda チャンネルから ArcGIS をインストールします。
activate awesome_arcgis
conda install --channel //offline/arcgis_channel/channel arcgis --offline --override-channels
この結果、次の出力が生成され、ユーザーの確認を求めた後にインストール処理が続行されます。
$ conda install -c //offline/arcgis_channel/channel arcgis --offline --override-channels
Fetching package metadata .....
Solving package specifications: ..........

Package plan for installation in environment C:\Anaconda3\envs\awesome_arcgis:

The following packages will be downloaded:

      package                    |            build
      ---------------------------|-----------------
      colorama-0.3.7             |           py35_0          19 KB  file://offline/arcgis_channel/channel
      decorator-4.0.10           |           py35_0          12 KB  file://offline/arcgis_channel/channel
      ....

Proceed ([y]/n)? y
  ....
Enabling notebook extension arcgis/mapview...
      - Validating: ok
Conda リストを実行することで、ArcGIS がインストールされていることを確認します。
$ conda list
  # packages in environment at C:\Anaconda3\envs\awesome_arcgis:
 #
  arcgis                    0.9                      py35_1    file://offline/arcgis_channel/channel
  colorama                  0.3.7                    py35_0    file://offline/arcgis_channel/channel
  decorator                 4.0.10                   py35_0    file://offline/arcgis_channel/channel
 ...


オフライン インストールのテスト

ArcGIS パッケージが新しい環境でインストールされた場合は、パッケージをアクティブ化します。 次に、ご使用の端末から、次のコマンドを実行します。
jupyter notebook
これにより、ブラウザーで新しいノートブック環境が開始されます。 新しいノートブックを開始して、次のように入力します。
from arcgis.gis import GIS()
gis = GIS("portal url", "username", "password") #connect to the ArcGIS Enterprise in your local network
gis.map()
この結果、マップ ウィジェットが表示され、デフォルトのベースマップが読み込まれます。
 

ヒントとコツ

OS の差異
  • このスクリプトを実行するオペレーティング システムによっては (Mac のような Unix ベースの OS や Linux などで)、バックスラッシュをスラッシュに置き換える必要がある場合があります。
  • この Python スクリプトは、すべての OS アーキテクチャのパッケージをダウンロードします。 このため、ダウンロード先のコンピューターのオペレーティング システムがそれぞれ異なる場合でも、ダウンロードおよびインデックス構築手順を再実行する必要はありません。 ダウンロード先のコンピューターでチャンネルを使用可能にするには、Web サーバーまたはネットワーク ドライブを利用するか、それらのコンピューターへの物理コピーを行って、その場所からインストールします。


アーカイブの作成

後で使用するか、保存しておくためにチャンネルのアーカイブを作成するには、root レベルのチャンネル フォルダーとそのすべてのサブフォルダーを tar ファイルにバンドルします。 これを行うには次のコマンドを使用します。 Windows では、これらのコマンドを実行するための端末として PowerShell を使用します。
$ tar -zcvf arcgis_v1_offline_channel.tar.gz path/to/channel/
このコマンドを実行すると、次のような出力が生成されます。
a channel
a channel/.DS_Store
a channel/linux-32
a channel/linux-64
a channel/osx-32
a channel/osx-64
a channel/win-32
a channel/win-64
a channel/win-64/.index.json
a channel/win-64/_nb_ext_conf-0.3.0-py35_0.tar.bz2
a channel/win-64/anaconda-client-1.5.5-py35_0.tar.bz2
a channel/win-64/arcgis-1.0-py35_1.tar.bz2
a channel/win-64/clyent-1.2.2-py35_0.tar.bz2
....
後で使用するためにこのアーカイブを展開するには、次のコマンドを実行します。
$ tar -zxcf arcgis_v1_offline_channel.tar.gz -C ./arcgis_channel

関連情報