ArcGIS Server は、コマンド ラインの ArcPy スクリプトに Python 3 ランタイムを使用するオプションを提供しています。 ArcGIS Server では Python 3.x がインストールされますが、ArcGIS Server での Python 3 の使用を簡略化する別個の Python 3 ランタイム パッケージをインストールできます。
はじめに
Python は ArcGIS 内で利用できるサード パーティ ライブラリを提供しますが、インストールするパッケージの管理は、特に複数のプロジェクトを一度に操作する場合やコードを他のユーザーと共有する場合などは、複雑で時間のかかる作業になる可能性があります。 ArcGIS Server for Linux の Python 3 ランタイムの使用を簡略化するには、conda または Miniconda を使用して arcgis-server-py3 パッケージをダウンロードおよびインストールします。 ArcGIS Server for Linux の Python 3 ランタイムには、64 ビット インストーラーが必要です。
conda または Miniconda をまだ所有していない場合は、Anaconda の Web サイトからダウンロードできます。
ターミナルで、ArcGIS Server for Linux の Python 3 ランタイムに対して conda 環境を有効化するときに、ArcGIS Server のインストール ディレクトリに ARCGISHOME 変数を設定します。export ARCGISHOME=/path/to/arcgis/server
ArcPy などの ArcGIS Python の機能にアクセスするために、arcgis-server-py3 パッケージをインストールします。 conda 環境内で、次のコマンドを使用して ArcGIS Server for Linux の Python 3 ランタイムをインストールします。
conda install -c esri arcgis-server-py3=<ArcGIS Server version>
<ArcGIS Server version> 値は、ライブラリの現在のバージョンを示します。これは、ArcGIS Server の現在のバージョンと同じで、形式は、たとえば ArcGIS Server 11.1 の場合は n.n.n で、以下を使用します。
conda install -c esri arcgis-server-py3=11.1.0
arcgis-server-py3 パッケージのバージョンを確認するには、次のコマンドを使用します。
conda list arcgis-server-py3
arcgis-server-py3 パッケージをインストールすると、サポートされているジオプロセシング ツールとすべてのサードパーティの要件を含む ArcPy が追加されます。
arcgis-server-py3 パッケージをインストールしない場合は、ArcGIS Server インストール ディレクトリの path/to/arcgis/server/framework/runtime/ArcGIS/bin/Python/envs/arcgispro-py3/ にインストールされている python.exe ファイルを実行するときに Wine を呼び出す必要があります。
移行
ArcGIS Server での Python 3 ランタイムの使用方法は、Python 2 ArcGIS Server のものとは異なります。 対応すべき違いには、主に ArcPy 内と Python のバージョンの変更があります。
ArcPy の機能に対する変更
多くのジオプロセシング ツールは引き続き ArcGIS Server の Python 3 で使用できますが、使用できないツールもあります。 [Parcel Fabric] (ArcMap)、[Schematics]、[Tracking Analyst] の各ツールボックスのツールは含まれていません。 その他のツールボックスの追加ツールも、使用できません。 サポートされているジオプロセシング ツールの詳細な一覧については、arcgis-server-py3 パッケージに付属している readme ファイルをご参照ください。
arcpy.mapping モジュールは、ArcGIS Pro の arcpy.mp モジュールに置き換えられました。 arcpy.na モジュールにも変更が含まれており、それらの多くは、arcpy.mapping から arcpy.mp への変更に関連しています。
Python のバージョンの変更
ArcGIS Server の Python ランタイムは Python 3 を使用しています。これは大きな変更です。Python 3 ラインは、Python 2 ラインとは互換性がありません。 この言語の大半の部分は基本的に同じですが、重要な詳細においては多くの部分で大きく異なります。たとえば、文字列およびディクショナリの動作方法や標準的なライブラリの構成が異なります。
現在では、Python コミュニティは、主要なサード パーティのライブラリの大半は Python 3 に移植しており、Python コミュニティでは、すべての新しい導入プロジェクトは Python 3 で行われるのがコンセンサスとなっています。
ArcGIS Server では Python 2.7 のサポートが終了しています。 ArcGIS Server で引き続き Python コードを使用するには、Python 3 でコードが機能することを確認する必要があります。
コードを Python 2 から Python 3 にのみ変換する場合は、2to3 コマンド ライン ユーティリティを使用して、プロセスの大半を自動化することができます。 2to3 は、優れたツールですが完全なソリューションではなく (場合により約 95% が解決されると想定)、その他の変更が必要になる場合があります。
Python スクリプトが単純である場合は、変更する必要がまったくない場合もあり、変更せずに正常に実行できます。