使用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会话
- 在你的代码的感兴趣的线上设置一个断点(例如,通过单击装订线),然后启动debugging(在编辑器中单击鼠标右键,然后selectDebug myfile.py … )。
- 达到断点时,单击“ 控制台”选项卡,然后单击“ 显示命令行”图标(请参见屏幕截图)。
这将启用python shell(请注意屏幕截图上的绿色>>>
),您可以在其中访问当前作用域中的所有variables,并执行通常在Python shell中执行的所有操作。 显然你需要在控制台中按Enter键来初始化它。
在最近的pycharm版本中,您将得到完整的ipython解释器,而不是普通的python shell(如果安装了ipython)。
评估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式( Alt – F8 ) (由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默认应该是开启的)。
我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,请尝试上述方法。