ChatGPT解决这个技术问题 Extra ChatGPT

使用 pycharm 进行交互式 shell 调试

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


c
ccpizza

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

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

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

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

https://i.stack.imgur.com/mTHDA.jpg

评估表达式窗口

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

https://i.stack.imgur.com/ZWsxL.png

鼠标悬停在变量上

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

https://i.stack.imgur.com/y1DHL.png

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

https://i.stack.imgur.com/YF9Fs.png

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

对于 pandas 数据框,您将在变量检查器面板或悬停弹出窗口中看到 View as DataFrame 链接 — 单击该链接将显示 dataframe as a table in the Data View panel .

更新

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

https://i.stack.imgur.com/158Jd.png

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


“显示命令行”是一个您甚至可以绑定到键盘快捷键的功能。
可以使用 Alt-Left 或 Alt-Right 将选项卡从 Debugger 切换到 Console
j
jezrael

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

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

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

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

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

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

了解它here

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

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

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

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


G
Games Brainiac

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

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

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

https://i.stack.imgur.com/4fYuN.png

2. 在 PyCharm 中打开 Python 控制台

https://i.stack.imgur.com/JSlv8.png

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

https://i.stack.imgur.com/fAS43.png

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


s
strpeter

执行后保持命令行打开

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

https://i.stack.imgur.com/U0p1N.png

全局配置

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

https://i.stack.imgur.com/HUYt8.png


现在的选项是 Run with Python console 而不是 Show command line afterwards
C
Community

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

引用下面的答案:

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

从 python --help 的输出:

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

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

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

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


至少在 4.5.4 中,PyCharm 在 Rund/Debug Configurations 对话框中提供了一个“之后显示命令行”选项,我发现它比 -i 选项好得多(向上箭头表示最后一个命令有效)
P
Piga-fetta

上面没有提到:

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

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

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


C
Community

*更新

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

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

工具 --> 运行 Python 控制台

导入您的脚本 import myscript(不带 .py)(如果您想要一个短名称,请使用 import myscript as m

(如果你有一个 if __name__ == '__main__' 块,你可能需要运行 main() )

如您的问题一样, a 在 myscript.a 中可用

如果需要,请使用 myscript = reload(myscript) 再次运行脚本

*原来的

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

工具 --> 运行 Python 控制台

工具 --> 打开终端(您可以从中启动 python 或做任何事情)

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


a
arkore

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

>>> runfile('myscript.py')

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


r
rovyko

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