どのプログラミング言語やスクリプトでも、うまく動作しない時があります。そうなったとき、具体的に何をすれば修正できるのでしょうか?<\/P>
スクリプトを修正するには、まず正確な問題を特定する必要があります。問題は常に明白とは限りません。以下は、Python<\/A>スクリプトが機能しない場合に確認すべき3つの問題点または問題領域です。<\/P>問題1:コードのエラー<\/U><\/P>プログラミング言語を使用する際の最も一般的な問題の一つは、コードのどこかにエラーがあることです。エラーを確認する最も簡単な方法は、返されるエラーメッセージ(もしあれば)を見つけることです。ほとんどのエラーメッセージは、動作していないコードの特定の行について示しています。<\/P>エラーメッセージを見つけることは非常に簡単で、特にPythonWinやPython IDLEのような統合開発環境 (IDE)<\/A>でスクリプトを実行している場合はなおさらです。スクリプトにtry<\/B>およびexcept<\/B>文*が組み込まれていない限り、スクリプトはエラーとその発生した行番号を出力します。これにより問題箇所を簡単に特定できます。<\/P>以下はPythonWinでの典型的なエラー応答例です:<\/P>最初に見るべきは行番号です。2行報告されていますが、注目すべきは使用中のスクリプト名(この場合Blog_samples.py)の直後の行です - 矢印1参照。その直下の行が実際のコード行です - 矢印2参照。<\/P>もし問題がツールやメソッドにある場合、ArcGISのエラーコードが表示されることがあります - 矢印3参照。このサンプルではファイルパスが存在しなかったため、修正としてパスを確認する必要があります。ツールエラーについて不明な場合は、数値コード(例:000732)を入力してArcGIS Desktop Help<\/A>で検索できます。ヘルプドキュメントには各エラーへの可能な解決策が含まれています。<\/P>注意:<\/B> ファイルパスや長い文字列は必ず二重三重に確認してください。一文字でも誤字があるとエラーになります。可能な場合は長い文字列をコピー&ペーストして誤字を減らしましょう。<\/P>注意:<\/B> エラーが1行目で報告された場合、それはコードではなく別の依存関係(例えばインポートされているモジュールが存在しないなど)が原因かもしれません。<\/P>*なぜtry<\/B>とexcept<\/B>がエラーメッセージ確認時に問題になるのでしょうか? try<\/B>とexcept<\/B>はエラーチェックと検証手順に使われますが、エラーメッセージを出力する方法なしで含めると、エラーを隠してしまい見つけるのが非常に困難になります。Try/Except文によるエラー処理について詳しくはArcGIS Desktop 9.3ヘルプのPythonでのエラー処理<\/A><\/I>をご覧ください。 <\/P>問題2:Pythonバージョンの不一致<\/U><\/P>Pythonは柔軟な言語で、一台のマシンに複数バージョンをインストールできます。これが原因で、ArcGISなど特定バージョンの使用を要求するプログラムで問題が起こることがあります。それぞれのArcGISバージョンには対応するPythonバージョンが必要であり、ArcGIS Desktop、ArcGIS Engine、または ArcGIS Server をインストールするとそのバージョンもインストールされます。以下はArcGISバージョンと対応するPythonバージョンの表です:<\/P>ArcGIS Version<\/TH>Python Version<\/TH><\/TR>9.0<\/TD>2.1<\/TD><\/TR>9.1<\/TD>2.1<\/TD><\/TR>9.2<\/TD>2.4<\/TD><\/TR>9.3\/9.3.1<\/TD>2.5<\/TD><\/TR>10.0<\/TD>2.6<\/TD><\/TR><\/TBODY><\/TABLE>さて、どのバージョンを使うべきか分かったところで、実際にどのバージョンが使われているかどうやって確認すればよいでしょうか?Windowsではファイルタイプごとにデフォルトで開くプログラムがあります。Pythonの場合、それは通常Pythonがインストールされたシステムフォルダ内にあるpython.exe<\/B>です。デフォルトではArcGISはC:PythonXXディレクトリに自分のバージョンをインストールし、そのディレクトリ内にpython.exeがあります。<\/P>どのPythonバージョンが使われているか確認するには、Windows Explorerでツール > フォルダオプション > ファイルタイプタブへ進むか、Windows Vistaまたは7の場合はコントロールパネル > 既定のプログラム > ファイルタイプの関連付けからPY<\/B>拡張子を探します。それを選択すると、そのファイルタイプを実行するために使われているプログラムが表示されます。Windows XPでは「詳細設定」ボタンをクリックすると「開く」アクション下でそのファイルへのパスを見ることもできます。<\/P>Windows XP のファイルタイプダイアログボックス<\/B>PythonバージョンだけでなくIDEバージョンも間違っている可能性があります。これは特にPythonWinでよくあります。使用中のPythonWinバージョンを確認し、それが正しいArcGISバージョンと一致しているか確かめるには、PythonWinを起動してInteractive Window<\/B>を開くとバージョン情報が表示されます。<\/P>問題3:依存関係またはモジュールの欠如<\/U>どんなプログラミング言語でも外部ライブラリやモジュールを使う必要がある場合があります。それらライブラリを使う場合、スクリプトはそれらが定義された場所で見つけられる必要があります。Pythonではデフォルトで全てのモジュール(PYファイル)はPythonインストールディレクトリ内のLib<\B>フォルダにインストールされます。カスタムモジュールを使う場合、そのモジュールがマシン上の正しい場所にインストールされていることを必ず確認してください。場所は異なることがあります。例えばarcgisscriptingモジュールはArcGISインストールフォルダ内のbinディレクトリにあり、Pythonインストールディレクトリにはありません。モジュールとはマシン上の他のPY, PYC, または PYDファイルであり、コード内ではimport文によって追加されます。最後に、ArcGISユーザーコミュニティおよびEsriサポートサービス(米国および国際代理店)は皆さんのお手伝いをするためにここにいます。ぜひGeoprocessingフォーラムやScript Galleryをご覧になりヒントやアイデアをご活用ください。楽しいPythonライフを!
問題1:コードのエラー<\/U><\/P>プログラミング言語を使用する際の最も一般的な問題の一つは、コードのどこかにエラーがあることです。エラーを確認する最も簡単な方法は、返されるエラーメッセージ(もしあれば)を見つけることです。ほとんどのエラーメッセージは、動作していないコードの特定の行について示しています。<\/P>エラーメッセージを見つけることは非常に簡単で、特にPythonWinやPython IDLEのような
注意:<\/B> ファイルパスや長い文字列は必ず二重三重に確認してください。一文字でも誤字があるとエラーになります。可能な場合は長い文字列をコピー&ペーストして誤字を減らしましょう。<\/P>注意:<\/B> エラーが1行目で報告された場合、それはコードではなく別の依存関係(例えばインポートされているモジュールが存在しないなど)が原因かもしれません。<\/P>*なぜtry<\/B>とexcept<\/B>がエラーメッセージ確認時に問題になるのでしょうか? try<\/B>とexcept<\/B>はエラーチェックと検証手順に使われますが、エラーメッセージを出力する方法なしで含めると、エラーを隠してしまい見つけるのが非常に困難になります。Try/Except文によるエラー処理について詳しくはArcGIS Desktop 9.3ヘルプの
問題2:Pythonバージョンの不一致<\/U><\/P>Pythonは柔軟な言語で、一台のマシンに複数バージョンをインストールできます。これが原因で、ArcGISなど特定バージョンの使用を要求するプログラムで問題が起こることがあります。それぞれのArcGISバージョンには対応するPythonバージョンが必要であり、ArcGIS Desktop、ArcGIS Engine、または ArcGIS Server をインストールするとそのバージョンもインストールされます。以下はArcGISバージョンと対応するPythonバージョンの表です:<\/P>ArcGIS Version<\/TH>Python Version<\/TH><\/TR>9.0<\/TD>2.1<\/TD><\/TR>9.1<\/TD>2.1<\/TD><\/TR>9.2<\/TD>2.4<\/TD><\/TR>9.3\/9.3.1<\/TD>2.5<\/TD><\/TR>10.0<\/TD>2.6<\/TD><\/TR><\/TBODY><\/TABLE>さて、どのバージョンを使うべきか分かったところで、実際にどのバージョンが使われているかどうやって確認すればよいでしょうか?Windowsではファイルタイプごとにデフォルトで開くプログラムがあります。Pythonの場合、それは通常Pythonがインストールされたシステムフォルダ内にあるpython.exe<\/B>です。デフォルトではArcGISはC:PythonXXディレクトリに自分のバージョンをインストールし、そのディレクトリ内にpython.exeがあります。<\/P>どのPythonバージョンが使われているか確認するには、Windows Explorerでツール > フォルダオプション > ファイルタイプタブへ進むか、Windows Vistaまたは7の場合はコントロールパネル > 既定のプログラム > ファイルタイプの関連付けからPY<\/B>拡張子を探します。それを選択すると、そのファイルタイプを実行するために使われているプログラムが表示されます。Windows XPでは「詳細設定」ボタンをクリックすると「開く」アクション下でそのファイルへのパスを見ることもできます。<\/P>Windows XP のファイルタイプダイアログボックス<\/B>
PythonバージョンだけでなくIDEバージョンも間違っている可能性があります。これは特にPythonWinでよくあります。使用中のPythonWinバージョンを確認し、それが正しいArcGISバージョンと一致しているか確かめるには、PythonWinを起動してInteractive Window<\/B>を開くとバージョン情報が表示されます。<\/P>問題3:依存関係またはモジュールの欠如<\/U>
どんなプログラミング言語でも外部ライブラリやモジュールを使う必要がある場合があります。それらライブラリを使う場合、スクリプトはそれらが定義された場所で見つけられる必要があります。
Pythonではデフォルトで全てのモジュール(PYファイル)はPythonインストールディレクトリ内のLib<\B>フォルダにインストールされます。カスタムモジュールを使う場合、そのモジュールがマシン上の正しい場所にインストールされていることを必ず確認してください。場所は異なることがあります。例えばarcgisscriptingモジュールはArcGISインストールフォルダ内のbinディレクトリにあり、Pythonインストールディレクトリにはありません。
モジュールとはマシン上の他のPY, PYC, または PYDファイルであり、コード内ではimport文によって追加されます。
最後に、ArcGISユーザーコミュニティおよびEsriサポートサービス(米国および国際代理店)は皆さんのお手伝いをするためにここにいます。ぜひ
- James U., Support Analyst - SDK group, Esri Support Services
サインインしたメンバーは投稿、更新のフォローなどができます。初めてですか?無料アカウントを登録してください。
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.