コンフィグレーションガイド Vol.1


17.2.4 スクリプトファイルの正常性確認

作成したスクリプトファイルの正常性を確認する方法を次の表に示します。

表17‒12 スクリプトファイルの正常性を確認する方法

確認方法

説明

運用コマンドpyflakes

PyPI(Pythonライブラリの公開サイト)に公開されている,「pyflakes(pyflakes3k)」と呼ばれる文法チェッカーを利用して確認します。

pdbモジュール

Pythonの標準ライブラリとして提供されているデバッガを利用して確認します。ブレークポイントの設定や,ステップ実行ができます。

運用コマンドdump script-user-program

常駐スクリプトで出力される標準エラーを取得して確認します。

〈この項の構成〉

(1) 運用コマンドpyflakesによる確認

運用コマンドpyflakesを実行すると,指定したファイルに対してpyflakes(pyflakes3k)による文法チェックをします。pyflakesコマンドを使用して,sample.pyファイルの文法チェックをする例を次の図に示します。

図17‒5 pyflakesコマンドの実行例
> pyflakes sample.py
sample.py:4: invalid syntax
for cnt in range(10)
                     ^                            <-1
> 
  1. for文の末尾に異常があることを示しています。

(2) pdbモジュールを使用した確認

運用コマンドpythonでpdbモジュールを使用すると,指定したファイルをデバッグするためのデバッガコマンドが使用できます。pdbモジュールを使用して,sample.pyファイルの正常性を確認する例を次の図に示します。

図17‒6 pdbモジュールの使用例
# python -m pdb sample.py                         <-1
> /usr/home/share/sample.py(1)<module>()
-> import os
(Pdb) b 4                                         <-2
Breakpoint 1 at /usr/home/share/sample.py:4
(Pdb) r                                           <-3
> /usr/home/share/sample.py(4)<module>()
-> for cnt in range(10):
(Pdb) s                                           <-4
> /usr/home/share/sample.py(5)<module>()
-> if(cnt == 9):
(Pdb) cl                                          <-5
Clear all breaks? y
Deleted breakpoint 1 at /usr/home/share/sample.py:4
(Pdb) r
--Return--
> /usr/home/share/sample.py(7)<module>()->None
-> sys.exit()
(Pdb) q                                           <-6
#
  1. -mオプションでpdbモジュールを使用して,sample.pyスクリプトを実行します。

  2. デバッガコマンドb(reak)で,sample.pyの4行目にブレークポイントを作成します。

  3. デバッガコマンドr(un)で,スクリプトを実行します。

  4. ブレークポイントで処理が停止したため,デバッガコマンドs(tep)でスクリプトをステップ実行します。

  5. デバッガコマンドcl(ear)で,ブレークポイントを削除します。

  6. デバッガコマンドq(uit)で,デバッガを終了します。

(3) 運用コマンドdump script-user-programによる確認

運用コマンドdump script-user-programを実行すると,常駐スクリプトで出力される標準エラーを取得できます。ただし,標準出力は取得できません。常駐スクリプトの標準エラー出力を確認する例を次の図に示します。

図17‒7 常駐スクリプトの標準エラー出力例
# dump script-user-program                        <-1
# cd /usr/var/scriptManager                       <-2
# gzip -d smd_script_user.gz                      <-3
# cat smd_script_user                             <-4
[resident tag 1 info]
**** 20XX/03/19 17:52:36 UTC ****
Script start filename=/usr/var/script/script.file/sample1.py pid=128
 
**** 20XX/03/19 17:52:36 UTC ****
  File "/usr/var/script/script.file/sample1.py", line 1
    print a
          ^
SyntaxError: invalid syntax
 
**** 20XX/03/19 17:52:36 UTC ****
Script end filename=/usr/var/script/script.file/sample1.py pid=128
        :
        :
        :
#
  1. 標準エラーをファイル(smd_script_user.gz)へ出力します。このファイルは,/usr/var/scriptManager/の配下に作成されます。

  2. /usr/var/scriptManager/の配下に移動します。

  3. smd_script_user.gzを解凍します。

  4. 解凍したファイルを表示します。