ArcGIS Server は、コマンドラインの ArcPy スクリプトに Python 3 ランタイムを使用するオプションを提供しています。ツールの選択は、ArcGIS Server とは独立してインストールされる Python 3.5 ランタイムを使用して実行できます。
レガシー:
Linux 上の ArcGIS Server における以前のリリースでは、Python スクリプトは ArcGIS Server に付属する Python 2.7 を使用して Linux シェル内でしか実行できませんでした。これには、サードパーティのライブラリの使用やパスの操作に制限がありました。
はじめに
Linux 上の ArcGIS Server で Python 3 ランタイムの使用を開始するには、conda を使用して arcgis-server-<arcgis version number>-py3 パッケージをダウンロードおよびインストールします。
Python には ArcGIS 内で活用できる既存のコード パッケージの充実したエコシステムがありますが、システムにインストールするパッケージの管理は、特に複数のプロジェクトを一度に操作する場合やコードを他のユーザーと共有する場合などは、複雑で時間のかかる作業になる可能性があります。
この多様性を活用するために、Python コミュニティは、公開されているほとんどすべての Python パッケージを簡単にインストールできるようにしながら、複数バージョンの Python でプロジェクトを作成できる方法を設計しました。最も一般的で広く使用されている Python パッケージ マネージャーは、conda です。conda を ArcGIS Server と統合することで、オープンソースとサードパーティのパッケージからなる Python のエコシステムの機能を ArcGIS Server で使用できるようになります。これにより、Python コードに使用するためのパッケージと依存性を簡単にインストール、実行、更新できます。
まだ conda がない場合は、ここからダウンロードできます。
ArcPy などの ArcGIS Python の機能にアクセスするために、arcgis-server-<arcgis version number>-py3 パッケージを conda から直接インストールできます。conda 環境内から、次のコマンドを使用します。
conda install -c esri arcgis-server-<arcgis version number>-py3
arcgis-server-<arcgis version number>-py3 パッケージをインストールすると、サポートされているジオプロセシング ツールとすべてのサードパーティの要件を含む ArcPy が追加されます。
移行
ArcGIS Server での Python 3 ランタイムの使用方法は、ArcGIS Server や ArcGIS Desktop など他の ArcGIS 製品での Python 2 と異なります。対応すべき違いには、主に Python 2 から 3 への変更と arcpy 自体の差異の 2 つがあります。
ArcPy の機能に対する変更
多くのジオプロセシング ツールは引き続き ArcGIS Server の Python 3 で使用できますが、使用できないツールもあります。含まれていないツールは、[パーセル ファブリック]、[Schematics]、[Tracking Analyst] の各ツールボックスのツールです。その他のツールボックスの追加ツールも、使用できません。サポートされているジオプロセシング ツールの詳細な一覧については、readme パッケージに付属する arcgis-server-<arcgis version number>-py3 ファイルをご参照ください。
arcpy.mapping モジュールは、ArcGIS Pro の arcpy.mp モジュールに置き換えられました。arcpy.na モジュールにも変更が含まれており、それらの多くは、arcpy.mapping から arcpy.mp への変更に関連しています。
Python バージョンの比較
ArcGIS Server の Python ランタイムは Python 3.5 を使用します。これは、Python 2 ラインのリリースを使用してきた (今後も継続して使用する) 他の ArcGIS 製品と大きく異なる変更点です。Python 3 ラインは、Python 2 ラインとは互換性がありません。この言語の大半の部分は基本的に同じですが、重要な詳細においては多くの部分で大きく異なります。たとえば、文字列およびディクショナリの動作方法や標準的なライブラリの構成が異なります。
Python 3 は、数年間にわたり使用されており、Python コミュニティによって移植されてきた Python 2 と共存しています。現在では、主要なサード パーティのライブラリの大半は Python 3 に移植されており、Python コミュニティでは、すべての新しい導入プロジェクトは Python 3 で行われるのがコンセンサスとなっています。
Python 2 および 3 の両方で動作するように Python コードを更新するかどうかを決めることが重要なポイントです。コードを Python 2 から Python 3 に 1 回だけ変換する場合、2to3 コマンド ライン ユーティリティを使用して、プロセスの大半を自動化することができます。このユーティリティは Python 2 と 3 の両方で使用できます。2to3 は、優れたツールですが完全なソリューションではなく (場合により約 95 % が解決されます)、その他の変更が必要になる場合があります。
http://python3porting.com/ Web サイトにある Lennart Regebro の Porting to Python 3 は、Python 3 への移植や移行方法に関する参考資料として非常に役立ちます。Python 2 および Python 3 で実行されるスクリプトを記述することは可能です。
Python スクリプトが単純である場合は、変更する必要がまったくない場合もあり、変更せずに正常に実行できます。