4

DataNitro を使用して、Excel で Python スクリプトを記述しています。確かに非常に便利です。ただし、Idle エディターを Excel で開くと、付属の Python シェルは対話型ではなく、印刷ステートメントを返さず、エラーを表示せず、何も表示しません。プログラムを実行するたびに再起動します。print ステートメントを使用してエラーを追跡できないため、デバッグが非常に困難になります。

これがDataNitroのバグなのか、それともそのようになっているのか、それとも何が起こっているのか、誰か知っていますか? 解決策はありますか?

本当にありがとう

4

2 に答える 2

3

Ben ほど知識はありませんが、DataNitro をかなり使用しています。ここにいくつかのヒントを示します。

スクリプトが実行されると、シェルは自動的に閉じます。いくつかのプリントを調べたり、シェルとやり取りしたい場合は、通常、スクリプトの最後に次のように配置します。

raw_input("Press Enter to Exit shell")

あまりエレガントではありませんが、コンソールにテキスト オプションを表示する小さなループも作成しました。そこからプログラムとシートを操作できます。より巧妙でエレガントな方法は、スクリプトで Excel セルをポーリングし、そこでアクションを実行することです。

他に良いと思う点は、デフォルトの python シェルの代わりに Ipython を実行することです。Ipythonなしでpythonを使用することは想像できません...そのため、タブ補完Ipythonデバッグなどの利点が得られます.DataNitro設定の[Ipythonを使用]チェックボックスをクリックするだけで有効にできます(これがバージョンに依存するかどうかはわかりません)。

于 2013-07-12T12:57:38.307 に答える
3

IDLE エディターは単なるエディターであり、シェルとしては機能しません。

プログラムをデバッグする最良の方法は、例外を発生させることです。これにより、スクリプトの実行時に開くシェルがフリーズし、変数を調べて、実行中に生成された print ステートメントを確認できるようになります。

たとえば、次のように実行すると:

print Cell("A1").value
x = Cell("B1").value
raise

シェルに出力された A1 の値が表示されます。プロンプトで「x」と入力すると、B1 の値を確認できます。

作業中のスクリプトを通常の Python シェル (「シェル」を押すと開くシェル) にインポートすることもできます。これにより、そのスクリプトのコードが実行されます。

コードをデバッグするためのガイドと、デバッグを容易にするいくつかの機能をサイトに追加する予定です。

出典: 私は DataNitro の創設者の 1 人です。

于 2013-06-18T19:11:52.120 に答える