Skip to main content

ArcGIS Server へのカスタム Python パッケージの配置

Python 3 ベースの conda 環境が ArcGIS Server に付属しています。 ArcGIS Server の Python のインストールには、numpymatplotlib などのパッケージが含まれています。 ただし、スクリプト ツールや Python ツールボックス用にさらに追加でカスタム Python パッケージをインストールしたい場合は、次の手順を実行します。 ArcGIS Pro と同様に、ArcGIS Server では conda を使用して Python 環境を管理します。 conda の使用および操作の詳細については、「conda の概要」をご参照ください。

ArcGIS Pro の Python 環境の詳細については、「ArcGIS Pro における Python」をご参照ください。 更新を行うときは、デフォルトの Python 環境のクローンを作成することをおすすめします。

すべてのジオプロセシング サービスに適用される Python 環境は一度に 1 つだけアクティブにできます。 また、サービスごとに独自のカスタム Python 環境が必要な場合、ジオプロセシング サービスごとに Python 環境を指定することもできます。

環境のクローンを作成する場合、ArcGIS Server アカウントにクローン環境に対する 読み取り 権限と 実行 権限があることを確認します。これらの権限がない場合、Python は初期化されず、ツール内の Python コードは実行されません。

アンインストール時にはクローン環境を手動で管理する必要があります。 また、ArcGIS Server をアップグレードした後、クローン作成した Python 環境を手動で proup コマンドを使用してアップグレードする必要があります。

すべてのジオプロセシング サービスへの Python 環境の指定

ArcGIS Server にサードパーティーの Python パッケージをデプロイしてすべてのジオプロセシング サービスで利用するには、サイト内のコンピューターごとに次の手順を実行します。

注意:

これにより、お使いのシステムのジオプロセシング サービスの Python 環境も変わります。

  1. ArcGIS Server アカウントか、デフォルトの Python 環境とクローン環境の格納先ディレクトリーにアクセスできるアカウントで、ArcGIS Server コンピューターにサイン インします。

  2. Wine explorer を起動して、デフォルト環境のクローン作成の準備を行います。

  3. 次のコマンドを実行します:

    source <install>/framework/etc/arcenv
    wine cmd  
    
  4. Wine がアクティブ化したら、次のコマンドで環境のクローンを作成します:

    注意:

    conda-proclone コマンドにはインターネット アクセスは必要ありません。

    注意:

    ArcGIS Server アカウントに、クローン環境に対する読み取りと書き込みのアクセス権限があることを確認します。

    注意:

    デフォルトの環境は通常は <install>\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3 にあります。

    cd "Z:\data\arcgis\server\framework\runtime\ArcGIS\bin\Python\Scripts"
    conda-proclone -i <path to default environment>  <path to cloned environment>
    

    conda-proclone の詳細については、conda-proclone -h を実行してください。

  5. Wine コマンドで activate <path to cloned environment> を実行してクローン環境をアクティブ化します。

  6. Wine コマンドでアクティブ化したクローン環境にカスタム パッケージをインストールします。

    注意:

    多くのサードパーティーの Python パッケージは動作しますが、パッケージが WIN32 呼び出しを行っている (Windows OS との直接的または間接的通信) 場合、それらのパッケージは構成が問題なく完了しても適切に機能しません。

    flask Python パッケージをインストールするコマンドの例を以下に示します。

    conda install flask   
    
  7. Wine コマンドで次のコマンドを実行してサーバーをクローン環境に切り替えます:

    conda proswap -n <cloned environment> --all-users`
    
    注意:

    セッションで ArcGIS Server アカウントを使用している場合、--all-users コマンドは必要ありません。 クローン環境をデフォルトの ~\Python\envs フォルダーの外にコピーする場合、その環境への絶対パスを指定します。

    注意:

    切り替え後、すべてのジオプロセシング サービス (システムのジオプロセシング サービスを含む) でクローン環境が使用されます。

  8. ArcGIS Server サービスを再起動します。

  9. 新しいセッションを開始するか、exit() で Wine コマンドを終了します。

    注意:

    startserver および stopserver スクリプトは ArcGIS Server インストールの scripts ディレクトリーにあります。

  10. 複数コンピューター デプロイメントの場合、ArcGIS Server サイトのその他すべてのコンピューターで上記の手順を繰り返します。

単一のジオプロセシング サービスへの Python 環境の指定

単一ジオプロセシング サービス用に環境をセットアップするには、次の手順に従います。

  1. ArcGIS Server アカウントか、デフォルトの Python 環境とクローン環境の格納先ディレクトリーにアクセスできるアカウントで、ArcGIS Server コンピューターにサイン インします。

  2. Wine explorer を起動して、デフォルト環境のクローン作成の準備を行います。

  3. 次のコマンドを実行します:

    source <install>/framework/etc/arcenv
    wine cmd  
    
  4. Wine がアクティブ化したら、次のコマンドで環境のクローンを作成します:

    注意:

    conda-proclone コマンドにはインターネット アクセスは必要ありません。

    注意:

    ArcGIS Server アカウントに、クローン環境に対する読み取りと書き込みのアクセス権限があることを確認します。

    注意:

    デフォルトの環境は通常は <install>\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3 にあります。

    cd "<path to server install>\framework\runtime\ArcGIS\bin\Python\Scripts"
    conda-proclone -i <path to default environment>  <path to cloned environment>
    

    conda-proclone の詳細については、conda-proclone -h を実行してください。

  5. Wine コマンドで activate <path to cloned environment> を実行してクローン環境をアクティブ化します。

  6. Wine コマンドでアクティブ化したクローン環境にカスタム パッケージをインストールします。

    注意:

    多くのサードパーティーの Python パッケージは動作しますが、パッケージが WIN32 呼び出しを行っている (Windows OS との直接的または間接的通信) 場合、それらのパッケージは構成が問題なく完了しても適切に機能しません。

    flask Python パッケージをインストールするコマンドの例を以下に示します。

    conda install flask   
    
  7. すべてのパッケージをインストールしたら、ArcGIS Server Administrator Directory に移動し、services リソースをクリックします。

  8. Python 環境を指定するジオプロセシング サービスを選択します。

  9. ページ下部の Supported Operations で edit をクリックします。

  10. サービス JSON で、キー値のペア "condaEnvironmentPath": "<full path to cloned-env>" をサービス プロパティに追加します。

    注意:

    ArcGIS Server インストールの Python 環境ディレクトリー以外のディレクトリーを使用する場合は、クローン環境への絶対パスを指定する必要があります。

    以下は、condaEnvironmentPath プロパティを含む、単純化したサービス プロパティ JSON です:

    {
     "serviceName": "regionalAnalysis",
     "type": "GPServer",
     "description": "",
     "allowedUploadFileTypes": "",
     "properties": {
      "toolbox": "Z:\\data\\arcgis\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\Analysis.GPServer\\extracted\\p30\\RegionalAnalysis.tbx",
      "condaEnvironmentPath": <"path to cloned environment">,
      "showMessages": "INFO"
     },
     "portalProperties": {
      "isHosted": false,
      "portalItems": [{
       "itemID": "4921223df97744a593d0b776666b9da9",
       "type": "GPServer"
      }]
     },
     "extensions": [{
      "typeName": "WPSServer",
      "properties": {
       "serviceType": "",
       "name": ""
      }
     }],
     "frameworkProperties": {},
     "datasets": []
    }
    
  11. 編集の保存 ボタンをクリックして、編集を保存します。

サービスが自動的に再起動します。

ArcGIS Server アップグレード後の、クローン作成した Python 環境のアップグレード

これまでは、ArcGIS Server を新しいバージョンにアップグレードするときに、以前にクローン作成した環境を破棄する必要がありました。 その後、アップグレードされた ArcGIS Server から Python 環境のクローンを作成し、サービスを再構成する必要がありました。

ArcGIS Server 12.1 以降では、次の手順を実行することで、conda proup コマンドを使用して、以前のバージョンの ArcGIS Server からクローン作成した Python 環境をアップグレードできます。

  1. ArcGIS Server アカウントか、クローン環境とサーバー インストールにアクセスできるアカウントとして、ArcGIS Server コンピューターにサイン インします。

  2. Wine コマンドを起動し、ディレクトリーを <install>\server\framework\runtime\ArcGIS\bin\Python\Scripts に変更します。

  3. conda proup -n <environment name> または conda proup -p <environment directory path> を実行して、環境をアップグレードします。

  4. Python 環境をアップグレードした後、この conda 環境で使用されるすべてのジオプロセシング サービスを再起動するか、ArcGIS Server サービスを再起動します。

conda proup コマンドの詳細については、conda proup --help を使用してください。 この関数を使用して、ArcGIS Server のダウングレード後に環境をダウングレードすることはできません。 この機能は非接続環境では使用できません。

すべてのジオプロセシング サービスへの Python 環境の指定

ArcGIS Server にサードパーティーの Python パッケージをデプロイしてすべてのジオプロセシング サービスで利用するには、サイト内のコンピューターごとに次の手順を実行します。 これにより、お使いのシステムのジオプロセシング サービスの Python 環境も変わることに注意してください。

  1. ArcGIS Server コンピューターにサイン インし、管理者としてコマンド プロンプト ウィンドウを開きます。

    注意:

    既存の conda 環境の場所によっては、管理者権限が必要となることがあります。

  2. ディレクトリーを <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts に変更します。

  3. conda create または conda proclone を使用して、新しい環境名でサーバーのデフォルト Python 環境のクローンを作成します:

    注意:

    候補の場所は、ArcGIS Server インストールの Python 環境のディレクトリーです。 あるいは、ArcGIS Server アカウントがアクセス権限を持つ別の場所を指定することもできます。

    • conda create で環境のクローンを作成するには、次のコマンドを使用します:
       conda create --clone arcgispro-py3 --prefix <"cloned environment path"> --pinned --no-shortcuts
    
    • 12.1 以降では、ArcGIS Server にインターネット アクセスがない場合や、処理速度を速くするために既存の環境のローカル コピーを必要とする場合は、conda proclone を使用して環境のクローンを作成します。 クローン対象の入力環境として、arcigspro-py3 を既存の別の Python 環境パスに置き換えることができます。

      `conda proclone <"cloned environment path"> --input-env arcgispro-py3`
      
  4. conda proswap -n <new environment name> --all-users を実行して、クローン環境をアクティブ化します。

    注意:

    ArcGIS Server アカウント ユーザーとしてコンピューターにサイン インしている場合、--all-users 引数の指定はオプションです。これ以外の場合、この引数の指定は必須です。

    注意:

    クローン作成された conda 環境が {ServerInstallation}\framework\runtime\ArcGIS\bin\Python\envs\ 以外の場所にある場合は、conda proswap -p "<full-path-to-cloned-directory>" --all-users を使用して、その場所への絶対パスを指定します。

  5. conda install を実行してサードパーティーの Python パッケージをインストールします。

    注意:

    conda install を使用できない場合のみ pip install を使用します。

  6. ArcGIS Server サービスを再起動します。

    注意:

    すべてのサービスがオンラインに戻るまでに数分かかります。

  7. 複数コンピューター デプロイメントの場合は、ArcGIS Server サイト内の他のすべてのコンピューターで、手順 1 ~ 6 を繰り返します。

パッケージの追加

既存の conda 環境にパッケージを追加するには、次の手順を実行します。

  1. ArcGIS Server コンピューターにサイン インします。 既存の conda 環境の場所によっては、管理者権限が必要となることがあります。

  2. [スタート] メニューから、Python 3 コマンド プロンプト を開きます。 ご使用のオペレーティング システムによっては、このメニューが ArcGIS Server フォルダー内にある場合があります。 スタート メニューにない場合は、<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scriptsproenv.bat を実行できます。

  3. デプロイする必要があるパッケージに対して conda install を実行します。

    注意:

    conda install を使用できない場合のみ pip install を使用します。

  4. ArcGIS Server Manager でジオプロセシング サービスを再起動します。

  5. 必要に応じて ArcGIS Server サービスを再起動します。

    注意:

    数分ですべてのサービスが再起動します。

  6. 複数コンピューター デプロイメントの場合は、ArcGIS Server サイト内の各コンピューターで手順 1 ~ 5 を繰り返します。

単一のジオプロセシング サービスへの Python 環境の指定

次のステップを使用して、サーバーのデフォルト Python 環境のクローンを作成し、サードパーティーの Python パッケージをインストールし、ジオプロセシング サービスのサービス プロパティを編集します:

  1. ArcGIS Server コンピューターにサイン インし、スタート メニューから Python 3 コマンド プロンプト を開きます。

    管理者としてコマンド プロンプトを実行しないと、一部のディレクトリーに環境のクローンを作成できない場合があります。

  2. conda create または conda proclone を使用して、新しい環境名でサーバーのデフォルト Python 環境のクローンを作成します:

    注意:

    候補の場所は、ArcGIS Server インストールの Python 環境のディレクトリーです。 あるいは、ArcGIS Server アカウントがアクセス権限を持つ別の場所を指定することもできます。

    • conda create で環境のクローンを作成するには、次のコマンドを使用します:
       conda create --clone arcgispro-py3 --prefix <"cloned environment path"> --pinned --no-shortcuts
    
    • 12.1 以降では、ArcGIS Server にインターネット アクセスがない場合や、処理速度を速くするために既存の環境のローカル コピーを必要とする場合は、conda proclone を使用して環境のクローンを作成します。 クローン対象の入力環境として、arcigspro-py3 を既存の別の Python 環境パスに置き換えることができます。

      `conda proclone <"cloned environment path"> --input-env arcgispro-py3`
      
  3. コマンド プロンプト ウィンドウで activate <new environment name> を使用して新しい環境をアクティブ化します。 ArcGIS Server インストールの Python 環境ディレクトリー以外のディレクトリーを使用する場合は、activate <fullpath>\<new environment name> でクローン環境への絶対パスを指定します。

  4. conda install packagename=version を使用して Python パッケージをインストールします。

    公開プロセス時に ArcGIS Pro で使用したパッケージのバージョンと、サーバーにインストールしたパッケージのバージョンを揃えることをおすすめします。

  5. すべてのパッケージをインストールしたら、ArcGIS Server Administrator Directory に移動し、Resourcesservices をクリックします。

  6. Python 環境を指定するジオプロセシング サービスを選択します。

  7. ページ下部の Supported Operations で edit をクリックします。

  8. クローン環境が ArcGIS Server インストールの Python 環境ディレクトリーにある場合は、サービス JSON で、キー値のペア "condaEnvironmentPath": <"new environment name"> または "condaEnvironmentPath": "<full path to new environment>" をサービス プロパティに追加します。 ArcGIS Server インストールの Python 環境ディレクトリー以外のディレクトリーを使用する場合は、クローン環境への絶対パスを指定する必要があります。 以下の例は、condaEnvironmentPath プロパティを含む、単純化したサービス プロパティ JSON です:

    {
     "serviceName": "gvonly",
     "type": "GPServer",
     "description": "",
     "allowedUploadFileTypes": "",
     "properties": {
      "toolbox": "C:\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\gvonly.GPServer\\extracted\\p30\\gvonly.tbx",
      "condaEnvironmentPath": <"new environment name">,
      "showMessages": "INFO"
     },
     "portalProperties": {
      "isHosted": false,
      "portalItems": [{
       "itemID": "4921223df97744a593d0b776666b9da9",
       "type": "GPServer"
      }]
     },
     "extensions": [{
      "typeName": "WPSServer",
      "properties": {
       "serviceType": "",
       "name": ""
      }
     }],
     "frameworkProperties": {},
     "datasets": []
    }
    
  9. 編集の保存 ボタンをクリックして、編集を保存します。

サービスが自動的に再起動します。

ArcGIS Server アップグレード後の、クローン作成した Python 環境のアップグレード

次の手順を実行することで、conda proup コマンドを使用して、以前のバージョンの ArcGIS Server からクローン作成した Python 環境をアップグレードします:

  1. ArcGIS Server コンピューターにサイン インし、管理者としてコマンド プロンプト ウィンドウを開きます。

  2. ディレクトリーを <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts に変更します。

  3. conda proup -n <environment name> または conda proup -p <environment directory path> を実行して、環境をアップグレードします。

  4. Python 環境をアップグレードした後、この conda 環境で使用されるすべてのジオプロセシング サービスを再起動するか、ArcGIS Server サービスを再起動します。

conda proup コマンドの詳細については、conda proup --help を使用してください。 この関数を使用して、ArcGIS Server のダウングレード後に環境をダウングレードすることはできません。 また、この関数をインターネット非接続環境で使用することはできません。