当前位置: 首页>>技术问答>>正文


使用pycharm进行交互式shell调试

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

例如,我们有一个包含一个文件’test.py’的’test’项目:

a = '123'
print a

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

123
Process finished with exit code 0

如何在交互shell中使用字符串’a’?

最佳解决办法

用于当前调试会话的内置python shell

  1. 在感兴趣代码线上设置一个断点(即通过单击装订线),然后启动调试(在编辑器中右键单击,然后选择调试myfile.py …)。

  2. 当到达断点时,找到调试> “控制台”选项卡,然后单击“显示命令行”图标(请参见屏幕截图)。

这将启用python shell(请注意屏幕截图上的绿色>>>),您可以在其中访问当前作用域中的所有变量,并执行通常在Python shell中执行的所有操作。

In recent pycharm versions you get the full ipython interpreter instead of the plain python shell (if ipython is installed).

python,pycharm,python-idle

评估表达式的窗口

作为一个更方便的选择,如果只需要检查一些变量、访问成员或调用范围内的对象的方法,一旦到达断点,请在当前范围中选择一个表达式,right-click – >评估表达式(或使用RunEvaluate Expression...下的菜单中显示的热键),根据需要进行编辑 – 可以键入任何具有自动补全的可用python表达式,然后按Enter键(或者单击Evaluate)来检查结果。

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

python,pycharm,python-idle

鼠标悬停在变量上

要在调试模式下点击断点后查看变量的值,请将鼠标指针悬停在变量上(1-2秒),该变量的值将显示在工具提示中。

python,pycharm,python-idle

提示将包含一个图标 – 点击它将打开一个弹出式检查器。

python,pycharm,python-idle

对于范围内的变量,检查器显示在调试下的底部面板中

次佳解决办法

我发现以前的答案有用,但并不令人满意。所以我在这里提供第三个选项:

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

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

  • 如果需要运行整个文件,则必须选择整个文件。

  • 即使遇到错误,代码也会继续运行。

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

详见here

使用断点和评估表达式(AltF8)(由Piga-fetta建议)

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

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

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

第三种解决办法

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

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

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

python,pycharm,python-idle

2.在PyCharm里打开Python控制台

python,pycharm,python-idle

3.从console.py文件导入变量

python,pycharm,python-idle

到这里,就已经成功地导入变量了。

第四种办法

执行后保持打开命令行

对于仍然有这个问题的人来说:进入运行/调试菜单,选择编辑配置,勾选“显示命令行”这个选项可以让你在控制台的>>>提示并测试你的功能。

python,pycharm,python-idle

全局配置

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

python,pycharm,python-idle

参考文献

本文由《纯净天空》出品。文章地址: https://vimsky.com/article/3708.html,未经允许,请勿转载。