デバッガを起動するには、デバッグしたい箇所付近に次の2文を打ち込んでください。
import pdb
pdb.set_trace()
set_traceを実行後の行で停止します。
下の画面では、set_trace行の次の行で黄色(停止)しているのが分かります。
ScheduleNurseⅢのPythonは、本来の目的である制約の作成のほか、解を求めた後の整形処理用(ポスト)の二つがあります。post_mainで記述された部分が、解整形用のスクリプトになります。今回は、Excelシートに所定フォーマットで解を書き込む処理を行っています。
<ステップを抜ける>
ステップボタンをクリックするとステップ動作しますが、停滞する場合もあります。
求解ページの右画面に実行の行情報が出力されていますが、外部ライブラリを実行している場合が殆どだと思います。外部ライブラリでは、コンパイルされたDLLが実行されており、Pythonソースは添付されていません。よって外部ライブラリのステップ動作をエディタ上で見ることは出来ません。
ですので、下のように、行番号部分をクリックしてブレークポイントを設定し、実行ボタンで、ブレークポイントまで実行させて、ライブラリ内部から抜けてください。
<ブレークポイントのオン・オフ>
もう一度クリックするとオフになります。コメント行にブレークポイントを設定することは出来ません。
次の画面では、Excelが起動したところまで実行しました。(Excelがないとエラーが出て終了してしまいます。)
今度は、reがないと言ってきました。reは、正規表現モジュールです。
調べたところ、Excelでスタッフ名を検索していますが、見つからないとNonTypeを返してくるようでした。
このようにして、ようやくExcelに出力することが出来ました。
以上、Excel整形もスケジュールナースⅢ内蔵Pythonで完結することが出来ました。
0 件のコメント:
コメントを投稿