【问题标题】:How to restart pydev interactive console after a code change?如何在代码更改后重新启动 pydev 交互式控制台?
【发布时间】:2013-09-04 00:27:19
【问题描述】:

我使用 Eclipse 和 pydev 进行 python 开发。我想使用 pydev 的交互式 python 控制台测试我的代码。当我对代码进行更改时,交互式 pydev 控制台不会注意到它,我必须关闭当前的 pydev 控制台并打开一个新控制台以反映更改。有没有更简单的方法来更改当前活动控制台?也许是重启按钮?

【问题讨论】:

  • 你在哪里写你的python逻辑?在交互式终端或源文件中,然后使用 PyDev 运行?
  • 在源文件中。我定义了类、函数等。然后我在 pydev 交互式控制台中输入语句来测试代码。

标签: python eclipse console pydev


【解决方案1】:

好的,我找到了一个很酷的方法。每当你启动一个新的 Pydev 控制台时;选择当前活动编辑器的控制台选项。

在交互式控制台的 python 提示符下键入以下内容

execfile('<full_path_to_your_python_script>')

现在您可以试验脚本中的代码了。

如果您更改文件中的某些内容(例如方法或类定义),则再次在 same Pydev 控制台中执行 execfile 语句。这将重新加载当前活动的编辑器文件,您现在可以访问修改后的代码。

注意:我猜这种行为是因为,Python 中的导入活动是幂等的——即一个模块只能导入一次。导入后,该模块的任何后续导入都将引用并返回先前导入的模块实例。获得模块最新定义的唯一方法是使用reload('module_name') 方法。我猜这就是execfile 所做的——它重新加载与当前活动的编辑器文件对应的python 模块。

【讨论】:

  • 请注意,Ctrl+Alt+Enter 可以为您执行 execfile。需要注意的是,计划进行集成 (github.com/fabioz/Pydev/pull/40),因为这不是必需的,因此请留意新的发行说明...
  • reload(module_name) 而不是 reload('module_name')
【解决方案2】:

在编码窗口中执行 ctrl+alt+enter (无论是否打开控制台),您将自动加载当前使用代码。

【讨论】:

  • 这对我使用带有 PyDev 和最新更新的 Eclipse Kepler 不起作用。
猜你喜欢
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-23
  • 2023-03-30
  • 2012-05-06
  • 2013-02-11
  • 1970-01-01
相关资源
最近更新 更多