ArcGIS Pro の ArcPy を統合開発環境から利用する方法

 2018/1/12 (金)    

これまで ArcMap の ArcPy (Python 2.7) でスクリプトを記述する統合開発環境(IDE)として、PyScripter を使ってきました。GUI が日本語だしデバッグ実行もできるので便利だったのですが、ArcGIS Pro の ArcPy (ArcGIS Pro 2.0 の場合は Python 3.5) は PyScripter から import arcpy が実行できません。

そこで、PyScripter に代わる ArcGIS Pro 用 ArcPy の IDE を捜す旅に出かけることにしました。

Python 統合開発環境

Python 用の統合開発環境 (IDE) で主立ったものは以下があります。最近コードを残しつつコメントも書けるということで、Jupyter notebook が熱いですね。.NET 開発で知名度の高い Visual Studio でも Python の開発ができます。しかも Community エディションなら個人開発や小規模企業で開発者の人数が少ないならば商用でも無償で利用できます。

今回は Visual Studio 2017 Community で ArcPy を開発できるように環境を整えます。

Visual Studio 2017 Community

Visual Sutido 2017 では標準インストールで Python オプションをチェックすると Python の開発もできるようになっています。ウィザードに従うと Python 3.6 がインストールされるのですが、 ArcGIS Pro 2.0 に搭載の Python は 3.5.3 です。しかも Python のインストール パスは ArcGIS Pro のインストール ディレクトリー内なので少々設定が必要です。

手順

  1. Visual Studio 2017 をインストールします。オプション選択で Python も使えるようにチェックしておきます。
  2. Visual Sutudio を起動し、[表示] メニュー → [その他のウィンドウ] →
    [Python 環境] をクリックし、[Python 環境] ウィンドウを表示します。
    
  3. [Python 環境] ウィンドウで [+カスタム] をクリックし、[構成] で以下を設定します。
    • 説明:Python 3.5 (64-bit) ArcGIS Pro
    • プレフィックス パス:C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3
    • インタープリター パス:C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe
    • ウィンドウ表示のインタープリター:C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\pythonw.exe
    • 言語バージョン:3.5
    • アーキテクチャー:64-bit
    • パス環境変数:<なし> 
  4. 記述したら [適用] リンクし、[これを新しいプロジェクトに対する既定の環境にする] をクリックします。
  5. 追加が完了したら、右から 2番目のアイコン(輪)を押して補間DB を更新してください。
  6. ライブラリーの読み込みがインジケーターとして反映されていきます。インジケーターが 100% になったら arcpy サイトパッケージが完全に認識できるようになります。

セットアップは以上です。

Python Intaractive ウィンドウでの実行

  1. Visual Studio → [表示] メニュー → [その他のウィンドウ] → [Python Intaractive ウィンドウ] ウィンドウをクリックして表示します。
  2. import arcpy と入力してエンター キーを押すとインテリセンスが有効になり、エンターを押すとサイト パッケージが読み込まれます。

モジュールを作成してデバッグ実行

  1. Visual Studio → [ファイル] メニュー → [新規作成] → [プロジェクト] を選択し、[新規プロジェクト] ウィンドウで [Python] → [Python アプリケーション] と選択します。プロジェクトを作成するフォルダーは任意に選択してください。
  2. 作成された *.py ファイルに、以下のコードを記述します(ArcPy のコードなら何でも良いです)。
    #coding:cp932
    import arcpy
    pt = arcpy.Point(135,35)
    print(str(pt.X) + "," + str(pt.Y))
  3. Visual Studio → [デバッグ] メニュー → [デバッグの開始] をクリックします。
  4. コマンド プロンプトに結果が表示され、ますので、任意のキーを押してコードを終了します。

Visual Studio ならインテリセンスも動作します。

Jupyter notebook

Jupyter notebook 上でも arcpy は実行できそうなのですが、どうも ArcGIS Pro のインストール パスに半角スペースがあってはいけないと記載がありました。しかし実際の ArcGIS Pro インストール パスで Jupyter を私用することができました。

Jupyter and ArcGIS error: arcpy needs to run within an active ArcGIS Conda environment

Copyright© WINGFIELD since1981 , 2018 All Rights Reserved.