76

我是 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

4

9 回答 9

118

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

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

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

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

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

评估表达式窗口

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

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

鼠标悬停在变量上

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

在此处输入图像描述

提示将包含一个➕</kbd> icon — clicking it will open the inspector in a popup.

在此处输入图像描述

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

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

更新

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

pycharm解释器图标

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

于 2014-04-06T13:34:20.253 回答
20

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

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

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

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

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

在这里阅读。

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

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

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

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

于 2013-12-15T14:10:28.203 回答
11

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

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

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

在此处输入图像描述

2. 在 PyCharm 中打开 Python 控制台

在此处输入图像描述

console.py3. 从文件中导入变量

在此处输入图像描述

在那里,您已成功导入变量。

于 2013-10-13T13:56:59.247 回答
11

执行后保持命令行打开

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

仅更改当前文件的设置

全局配置

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

更改所有 Python 文件的设置

于 2015-04-02T16:45:12.267 回答
6

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

引用下面的答案:

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

从 python --help 的输出:

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

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

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

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

于 2014-03-17T14:36:11.010 回答
4

上面没有提到:

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

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

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

于 2013-11-05T02:19:39.850 回答
2

*更新

从您的更新来看,我认为这个 SO 问题至少提供了一个完美的答案。

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

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

*原来的

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

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

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

于 2013-10-12T12:23:17.290 回答
0

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

>>> runfile('myscript.py')

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

于 2016-03-25T12:00:44.467 回答
0

除了我对Ramkins 的回答提出的建议之外,您还可以通过在文件内部右键单击并选择Run File in Console.

于 2018-12-26T00:30:58.927 回答