繁体   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