【问题标题】:interactive shell debugging with pycharm使用 pycharm 进行交互式 shell 调试
【发布时间】:2013-10-20 05:02:53
【问题描述】:

我是 PyCharm 的新手。我已经使用 IDLE 很长时间了。

在 IDLE 中执行脚本后使用 Python 对象非常方便。有没有办法在使用 PyCharm 与交互式 python shell 执行后使用脚本对象?

例如,我们有一个包含一个文件“test.py”的“测试”项目:

a = '123'
print a

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

123
Process finished with exit code 0

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

8 年后添加。我的 pycharm 俄语教程:https://youtu.be/-RzKJlLXw54

【问题讨论】:

标签: python pycharm python-idle


【解决方案1】:

*更新

根据您的更新,我认为this SO question 提供了at least one perfect answer

让我在这里比我链接的答案一步一步地写出来。

  • 工具 --> 运行 Python 控制台
  • 导入您的脚本import myscript(不带.py)(如果您想要一个短名称,请使用import myscript as m
  • (如果您有 if __name__ == '__main__' 块,您可能需要运行 main()
  • 在您的问题中,amyscript.a 中可用
  • 如果需要,请使用myscript = reload(myscript) 再次运行脚本

*原创

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

  • 工具 --> 运行 Python 控制台
  • 工具 --> 打开终端(您可以从中启动 python 或执行任何操作)

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

【讨论】:

    【解决方案2】:

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

    那么让我通过一些屏幕截图来演示一下:

    1。在根目录下创建console.py 文件

    2。在 PyCharm 中打开 Python 控制台

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

    至此,您已经成功导入了变量。

    【讨论】:

      【解决方案3】:

      上面没有提到:

      如果您想在执行期间使用变量,例如当您设置断点然后尝试在当前范围内的对象上调用函数时,PyCharm 有一个“Evaluate Expression (Alt-F8)”弹出窗口。

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

      (我使用的是 PyCharm 3.0.1 社区版)

      【讨论】:

        【解决方案4】:

        我发现 Piga-fetta、Games Brainiac 和 kobejohn 以前的回答有用,但并不令人满意。所以我在这里提供第三种选择:

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

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

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

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

        阅读here

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

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

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

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

        【讨论】:

          【解决方案5】:

          我在以下位置找到了最佳答案: Interacting with program after execution

          引用下面的答案:

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

          来自 python --help 的输出:

          -i : 运行脚本后交互检查;即使 stdin 看起来不是终端也强制提示;还有 PYTHONINSPECT=x

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

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

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

          【讨论】:

          • 至少在 4.5.4 中,PyCharm 在运行/调试配置对话框中提供了一个“之后显示命令行”选项,我发现它比 -i 选项好得多(向上箭头表示最后一个命令有效)
          【解决方案6】:

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

          1. 在您的代码感兴趣的行设置断点(即通过单击装订线),并启动调试(在编辑器中右键单击然后选择 Debug myfile.py...)。
          2. 到达断点后,找到调试 > 控制台选项卡,然后单击显示命令行 图标(见屏幕截图)。

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

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

          计算表达式窗口

          作为一个更舒服的选择,如果你只需要检查一些变量、访问成员或调用作用域内对象上的方法,一旦到达断点,选择当前作用域中的表达式,右键单击 -> Evaluate Expression(或使用Run下菜单中显示的热键→Evaluate Expression...),根据需要进行编辑——你可以输入任何 python 表达式,可以自动完成 - 然后按 Enter(或点击 Evaluate ) 来检查结果。

          支持多行和多行表达式:要获得“检查”对话框的多行版本,请单击代码片段模式或在编辑器中选择多行代码,然后计算表达式。您可以为现有变量赋值(不能定义新变量),并运行整个代码块。

          鼠标悬停在变量上

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

          提示将包含一个 图标 - 单击它将在弹出窗口中打开检查器。

          对于范围内的变量,检查器显示在底部面板中的 Debug > Debugger

          对于 pandas 数据框,您将在变量检查器面板或悬停弹出窗口中看到 View as DataFrame 链接 - 单击该链接将显示 @987654324 @。

          更新

          在最新的 Pycharm 版本(2019+)中,解释器图标现在看起来不同了:

          同样在 unittest/pytest 调试 UI 中,图标首先放在图标栏中。

          【讨论】:

          • “显示命令行”是一个您甚至可以绑定到键盘快捷键的功能。
          • 可以使用 Alt-Left 或 Alt-Right 将选项卡从 Debugger 切换到 Console
          【解决方案7】:

          执行后保持命令行打开

          对于仍然遇到此问题的任何人:转到“运行/调试”菜单,选择“编辑配置”,选中“显示命令行”框,这将使您能够在 >>> 提示符下在控制台中输入参数并测试您的功能.

          全局配置

          要将此更改应用于所有 .py 文件(因为此复选框仅适用于您正在处理的当前文件),请转到:编辑配置,在弹出窗口中,您将在左侧看到一个菜单树,选择 Defaults,然后选择 Python,然后选中 'Show command line' 框,这将使其成为您打开 .py 文件时的默认设置,(此功能应该默认开启!)

          【讨论】:

          • 现在的选项是Show command line afterwards,而不是Run with Python console
          【解决方案8】:

          另一种选择是简单地使用 Spyder 用来“交互式”运行脚本的相同命令:

          >>> runfile('myscript.py')

          然后您可以打开交互式控制台的变量资源管理器并通过再次运行上述命令来重新运行脚本。与 Spyder 工作流程非常相似。上述所有其他方法将为您提供交互式控制台提示,但没有打开变量资源管理器的选项,因此如果您正在寻找此类功能,请尝试上述方法。

          【讨论】:

            【解决方案9】:

            除了我在Ramkins's answer 上提出的建议外,您还可以通过在文件内部右键单击并选择Run File in Console 直接使用控制台运行该文件。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-07-22
              • 2017-03-04
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-08-23
              相关资源
              最近更新 更多