簡體   English   中英

如何在Eclipse中進行pydev調試期間即時重新編譯python代碼

[英]How to recompile python code on the fly during pydev debug in eclipse

我假設這個問題可以是pydev通用的,但是我只在eclipse中使用了pydev,所以我不確定...

過去,我不小心這樣做了,我想定期學習如何做:

  1. 我在Eclipse Pydev中運行斷點調試器
  2. 我停在一行代碼上,意識到我需要更改一些內容
  3. 我對代碼進行了更改
  4. 我保存了代碼
  5. 調試器在上次更改之前跳了起來,以便我可以繼續進行調試會話並使用新更改:
    • 仿佛舊代碼從未發生過

我不確定這是如何工作的,但是我想確切地了解如何觸發它,因為在調試時它不再發生。

好吧,這有一些方面:

如果您使用的是框架(例如Django),則該框架具有內置的重新加載支持,因此,您將即時獲得代碼更改(通常通過生成新進程)。

現在,如果不是這種情況,則在最新的PyDev版本中,PyDev將跟蹤對代碼完成的版本,並會嘗試“熱交換”舊代碼以獲取新代碼。

它基於xreload,將嘗試在運行時修補類(即:直接更改類/方法代碼)。

唯一要注意的是,只有當您離開給定的函數並稍后再返回時,該函數才會生效,因為Python無法在運行的框架上修補代碼(有時它可能無法成功完成交換取決於代碼的構造方式,但在通常情況下,效果很好)。

請注意,這僅在最新的PyDev版本中可用。 它在某些較早的版本上,但由於其實現中的問題而被刪除了-但進行了改進,並重新添加回:)

有關更多詳細信息,請參見: http : //pydev.org/manual_adv_debugger_auto_reload.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM