Pythonでは、現在デバッグしているコードを変更して、すべてを再起動せずに続行することはできますか? (私はC#ですることができる方法、例えば。)どのPython環境も編集と継続をサポートしていますか?
16
A
答えて
12
既存の再定義、新しいオブジェクトを定義して作成することができます。そこから
import pdb
pdb.set_trace()
を使用し、pdb
であなたの指先で通訳のフルパワーを持っていますモジュールの変更と再読み込みなど。構文はgdb
と同じです。 ipythonを使用している場合は、ipdb
が良い選択かもしれません。あるいは、ipythonの魔法の機能%debug
でデバッガを自動的に起動することもできます。
1
名前に新しい値を付けることはできますが、古い値を参照する場所が残っている可能性があります。 Pythonシェルで以下のセッションを確認してください:
>>> def foo(): print 'Foo'
...
>>> bar = foo
>>>
>>> foo()
Foo
>>> bar()
Foo
>>>
>>> def foo(): print 'Bar'
...
>>> foo()
Bar
>>> bar()
Foo
>>>
>>> def call(): foo()
...
>>> call()
Bar
>>>
>>>
>>> def foo(): print 'Foo reloaded!'
...
>>>
>>> foo()
Foo reloaded!
>>> bar()
Foo
>>>
>>> call()
Foo reloaded!
>>>
機能call
は新しいfoo
を意味するが、bar
は古いfoo
の値を割り当てられていたし、あなたが名前foo
を再利用するときには変更されません。
編集者のサポートを依頼しましたか? Python-mode in Emacsは、「劣等パイソンプロセス」を実行することができます。このプロセスには、コードブロックを送信する際にコードブロックを送信することができます。あるいは、上記のように、Pythonシェルでこれを直接行うこともできます。
関連する問題
- 1. lambdaを含むコードのvs2012のサポート編集 - 継続
- 2. UNIXのPATH環境変数の編集
- 3. OpenGL ESは環境シェーダをサポートしていますか?
- 4. 環境は継続の一部ではありませんか?
- 5. 複数のプロジェクト/言語/環境との継続的な統合
- 6. Googleの環境内でGoogleフォームのソースを編集する
- 7. レジストリ内の環境変数を編集する
- 8. サイクロン(python)はHTTPS接続とSSLをサポートしていますか?
- 9. DLR 0.9はMicrosoftが運用環境でサポートしています
- 10. 編集して続行
- 11. クロムウェブストアのレビューを編集者として編集します
- 12. Roslynスクリプト環境でグローバルにアクセスして編集する方法は?
- 13. 私の開発環境はユーザーの環境を反映していますか?
- 14. 他のプログラミング環境でGoogle AppInventorで作成したアプリケーションを編集することはできますか?
- 15. Pythonの関数環境を理解しようとしています
- 16. Pythonとエージェントシミュレーション/ビジュアライゼーション環境
- 17. ZSH&Python:シェル環境変数としてのPython?
- 18. 新しい環境設定を作成して永続化しますか?
- 19. CE 5.0 Compact Framework .NETのDataGridは編集をサポートしていますか?
- 20. Sublime TextはCSS/SASSファイルのライブ編集をサポートしていますか?
- 21. Wingdingsをサポートする環境はどれですか?
- 22. Glassfish 3.1:開発環境や運用環境で実行していますか?
- 23. Python学習環境
- 24. 編集トリガーにインストールされています...どのシートを編集しましたか?
- 25. tableModeで重複行を編集し、元の行も編集します
- 26. Mongoでは、シャード環境で一意のインデックスがサポートされていますか?
- 27. 継続的インテグレーション環境における統合テスト:データベースとファイルシステムの状態
- 28. distrubuted環境をサポートする良いテストフレームワークですか?
- 29. Javaエージェントは "redefineClassesはこの環境ではサポートされていません"と報告しています
- 30. "abc"と呼ばれるPython仮想環境を持っていて、その名前を変更しても、それでも機能しますか?
幸いですが、IPythonを使用してpdbを使用することをお勧めします(これは構文の強調表示、例外の自動デバッグなど)(http://ipython.org/ipython-doc/stable/interactive /tutorial.html#debugging)。 – EOL