Memory PyCharm(i)Python控制台;“停止当前命令”;“的;在Python控制台中执行选择;(=Alt+;Shift+;E)在不丢失内存中变量的情况下进行处理?

Memory PyCharm(i)Python控制台;“停止当前命令”;“的;在Python控制台中执行选择;(=Alt+;Shift+;E)在不丢失内存中变量的情况下进行处理?,memory,menu,pycharm,console,ipython,Memory,Menu,Pycharm,Console,Ipython,我习惯于能够强制停止运行所选代码。这在vscode和Spyder中是可能的,而不会丢失内存中的变量 Spyder使用iPypthon控制台的示例:使用相同的“运行选择或当前行”(在Spyder:F9中)进程运行命令时,您意识到该过程耗时太长,希望停止该过程。您只需使用“停止当前命令”(红方块) 停止后,内存不会丢失,所有在停止时已知的变量仍在内存中。证明: 当您在Spyder中继续时,您可以选择在停止时刻之前已传递的任何代码行(您也可以选择稍后的代码行,但这通常没有意义)。例如,如果停止长时

我习惯于能够强制停止运行所选代码。这在vscode和Spyder中是可能的,而不会丢失内存中的变量

Spyder使用iPypthon控制台的示例:使用相同的“运行选择或当前行”(在Spyder:F9中)进程运行命令时,您意识到该过程耗时太长,希望停止该过程。您只需使用“停止当前命令”(红方块)

停止后,内存不会丢失,所有在停止时已知的变量仍在内存中。证明:

当您在Spyder中继续时,您可以选择在停止时刻之前已传递的任何代码行(您也可以选择稍后的代码行,但这通常没有意义)。例如,如果停止长时间运行的循环,请更改该循环的代码,然后再次运行该循环,或者返回10行代码,从那里开始

您可以从任何代码行继续执行新选择。

相比之下,在PyCharm中,我只找到了完全停止控制台的红色方块“Stop Console”,在此之后不可能执行任何操作,内存中的所有变量都将丢失

在“Python控制台”中按下红方块或Ctrl+C后,控制台关闭

控制台打印

Process finished with exit code 0
再也不可能有任何输入了。在此停止之后,也不再有“在Python控制台中执行选择”(Shift+Alt+E)的选项,这会导致:

“重新运行”/“新建控制台”都重新启动内核,内存中的变量丢失:

使用iPython控制台而不是标准的Python控制台(您可以在[File>Settings>MyProject>Project解释器]下安装它),请参阅),同样的问题:

即使在使用iPython的Spyder中,一个“stop”将我放回iPython外壳,而不会丢失内存中的变量,这种情况也会发生。我猜这条线索是关于一个类似的问题,尽管与PyCharm没有特别的关系

如何在PyCharm中获得一个类似于Spyder的“stop current command”选项的stop选项,以便“stop”将变量保留在内存中,并且我可以从停止的地方继续操作


请注意,线程不是此线程的副本,因为它接受的答案也会导致关闭内核。

调试器具有暂停操作,可以从工具栏或菜单访问该操作


这里唯一的选择是使用断点。您可以通过单击行号右侧的区域来添加它们

学分:


虽然在PyCharm中,通过运行/调试配置运行脚本时可以暂停脚本,但不幸的是,在控制台中运行选择时,“暂停”操作不可用,您请求的“停止”按钮也不可用。“停止”按钮的当前实现发送SIGTERM/SIGKILL


已经为此问题创建了一个功能请求:

我正在使用赏金,因为在PyCharm中应该可以使用Spyder中也提供的功能(使用iPython控制台)。在PyCharm工作时,如果没有务实的停止选项,我会感到不舒服。想象一下,你有一个长的脚本,你开始在中间运行太长的东西,你也不想重新启动整个脚本。或者,在运行几行代码的过程中,您意识到了一个小错误或有了一个新想法,您不想等到它结束。在Spyder中,我可以简单地停下来,从同一点继续,在PyCharm中我也需要它。除了PyCharm开发人员,没有必要在这里回答。PyCharm社区中已经打开了一个功能请求。我已经检查过了,这不是我需要的。我需要在使用“在Python控制台中执行选择”后停止,该选项从[Alt+Shift+E]开始。然后,我需要访问变量,直到最后一个完成的代码行。“调试模式”和“暂停”按钮不提供此功能。它不是关于暂停脚本执行,而是关于停止脚本执行,使在该点之前已知的变量仍在内存中,然后能够从该内存点再次继续执行。@Lorenz断点就是这样做的。它停止执行,将所有变量保留在内存中,然后提供继续执行的选项。我看不出来,我没有灵活性。断点只会暂停脚本,我想停止,更改代码,进一步选择新代码,我只是在那一刻再次确定,而不是在设置断点之前。我只需要在Spyder中可用的已执行选择的停止选项,而在PyCharm中不可用。另外:断点用于调试模式,而不是用于执行选择。