使用pycharm进行交互式shelldebugging

我是PyCharm的新手。 我一直在使用IDLE。

在IDLE中执行脚本后使用Python对象非常方便。 在使用PyCharm的交互式python shell执行后,有什么方法可以使用脚本对象吗?

例如,我们有一个'test'项目,其中一个文件'test.py':

a = '123' print a 

执行后我们可以得到结果:

 123 Process finished with exit code 0 

如何在交互式shell中使用string“a”?

内置的Python shell用于当前的debugging会话

  1. 在你的代码的感兴趣的线上设置一个断点(例如,通过单击装订线),然后启动debugging(在编辑器中单击鼠标右键,然后selectDebug myfile.py … )。
  2. 达到断点时,单击“ 控制台”选项卡,然后单击“ 显示命令行”图标(请参见屏幕截图)。

这将启用python shell(请注意屏幕截图上的绿色>>> ),您可以在其中访问当前作用域中的所有variables,并执行通常在Python shell中执行的所有操作。 显然你需要在控制台中按Enter键来初始化它。

在最近的pycharm版本中,您将得到完整的ipython解释器,而不是普通的python shell(如果安装了ipython)。

为调试的应用程序启用Python shell

评估expression式窗口

作为一个更为舒适的select,如果您只需要检查某些variables,访问成员或调用范围内对象的方法,一旦到达断点,请在当前范围内select一个expression式,右键单击 – > Evaluate Expression (或使用运行评估expression式下的菜单中显示的热键),根据需要进行编辑 – 您可以input任何 pythonexpression式,并自动完成 – 然后按Enter (或者点击Evaluate )来检查结果。

支持多行和多行expression式:要获得Inspect对话框的多行版本,请单击Code fragment模式或在编辑器中select多行代码,然后评估expression式。 您可以将值分配给现有variables(无法定义新variables),并运行整个代码块。 检查当前范围中的变量

我发现以前的答案来自Piga-fetta,Games Brainiac和kobejohn 有用,但并不令人满意 。 所以我在这里提供第三个选项:

将选定的代码加载到控制台 (我的build议)

使用Shift + Alt + E将所选代码或光标所在的行加载到控制台中并立即运行。 这也有一些缺点:

  • 如果需要运行整个文件,则必须select整个文件。
  • 即使遇到错误,代码也会继续运行。

但是作为回报,我们得到一个比IDLE更好的特性(在我看来):能够一次运行你的代码。

在这里阅读。

使用断点和评估expression式( AltF8 (由Piga-fettabuild议)

这在大型应用程序中非常有用,我们需要在代码中的某些位置进行debugging,但对于交互式编码不太有用。 所以这不是我们想要的。

使用工具 – >运行Python控制台 (由Games Brainiac和kobejohnbuild议)

这是我们想要的,但有点麻烦,特别是如果我们要运行的模块不在项目的根目录。

您可以简单地在PyCharm 2和PyCharm 3中使用Python控制台。您可以简单地导入,因为您的项目根目录已经添加到您的PYTHONPATH

所以让我通过一些屏幕截图来演示:

1.在根目录下制作一个console.py文件

在这里输入图像说明

2.在PyCharm里打开Python控制台

在这里输入图像说明

3.从console.py文件导入variables

在这里输入图像说明

在那里,你已经成功地导入了你的variables。

执行后保持打开命令行

对于仍然有这个问题的人来说:进入运行/debugging菜单,select编辑configuration,勾选'显示命令行',这将使您能够在控制台input参数在>>>提示符并testing您的function。

仅更改当前文件的设置

全局configuration

为了使这个改变适用于所有的.py文件(因为这个checkbox只适用于你正在处理的当前文件),请转到:编辑configuration,在popup的对话框中你会看到一个菜单树,selectDefaults ,然后selectPython,然后选中“显示命令行”框,每当你打开一个.py文件时,这会使其成为默认设置,(这个function默认应该是开启的)。

更改所有Python文件的设置

我find了最好的答案: 执行后与程序交互

引用下面的答案:

++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++

从python的输出–help:

-i:运行脚本后交互式检查; 即使标准input不是terminal,也会强制提示; 也是PYTHONINSPECT = x

要在PyCharm中设置解释器选项,请转至运行|编辑configuration

++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++

我尝试了它,它的工作原理 – 只需使用“-i”(不带引号)作为“解释器选项”。 请注意,如果只更改运行/debuggingconfiguration中的默认值,则可能不会立即生效您之前运行的脚本; 您将需要逐一编辑这些脚本的configuration。

上面没有提到:

如果你想执行过程中使用一个variables,例如当你设置一个断点,然后尝试调用当前范围内的对象时,PyCharm有一个“ Evaluate Expression(Alt-F8) ”popup窗口。

在这个窗口中,您可以调用函数并查看输出。 代码完成也可以。 这个窗口也有一个“代码片段模式”,我只是在研究它的意思 – 你能在这里定义临时函数吗?

(我正在使用PyCharm 3.0.1社区版)

*更新

从你的更新,我认为这个问题提供了至less一个完美的答案 。

让我一步一步写在这里,比我连接的答案。

  • 工具 – >运行Python控制台
  • 导入你的脚本import myscript (没有.py)(如果你想要一个简短的名字,使用import myscript as m
  • (如果你有一个if __name__ == '__main__'块,你可能需要运行main()
  • 就像你的问题一样,在myscript.a a可用的
  • 如果你想,用myscript = reload(myscript)再次运行脚本

*原版的

在PyCharm 3.0中,您可以执行以下操作:

  • 工具 – >运行Python控制台
  • 工具 – >打开terminal(从中你可以启动python或做任何事情)

那是你在找什么? 如果没有,请尝试一下,让我知道这是什么与你想要的不同。

另一种方法是简单地使用Spyder用于“交互式”运行脚本的命令:

>>> runfile('myscript.py')

然后,您可以打开交互式控制台的variables资源pipe理器,然后再次运行上述命令重新运行脚本。 与Spyder工作stream非常相似。 以上所有其他方法都会使用交互式控制台提示符,但不能打开variables浏览器,因此如果您正在寻找这种function,请尝试上述方法。