que*_*o42 4 memory console menu ipython pycharm
我习惯于能够强制停止所选代码的运行。这在 vscode 和 Spyder 中是可能的,并且不会丢失内存中的变量。
来自使用 iPypthon 控制台的 Spyder 的示例:您使用相同的“运行选择或当前行”(在 Spyder 中:F9)进程运行命令,您意识到它需要太长时间并且您想停止它。您只需使用“停止当前命令”(红色方块)即可。
停止后,内存不会丢失,所有在停止时刻已知的变量仍然在内存中。证明:
当你在 Spyder 中继续时,你可以选择直到停止时刻为止已经通过的任何代码行来继续(你也可以选择后面的代码行,但这通常没有意义)。例如,如果您停止一个长时间运行的循环,请更改该循环的代码,然后再次运行它,或者返回 10 行代码从那里开始。
您只需从任何代码行继续执行新的选择即可。
相比之下,在 PyCharm 中,我只找到红色方块“停止控制台”,它完全停止控制台,此后无法执行任何操作,内存中的所有变量都会丢失。
在“Python 控制台”中按红色方块或按 Ctrl+C 后,控制台将关闭。
控制台打印出
Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)
并且无法再进行任何输入。在此停止之后,也不再有“在 Python 控制台中执行选择”(Shift+Alt+E) 的选项,它会导致:
“Rerun”/“New Console”都重新启动内核,内存中的变量丢失:
使用 iPython 控制台而不是标准 Python 控制台(您可以在 [File>Settings>MyProject>Project Interpreter] 下安装它,请参阅如何将 IPython 控制台添加到 PyCharm),同样的问题:
即使在使用 iPython 的 Spyder 中,这种情况也会发生,“停止”会让我返回 iPython shell,而不会丢失内存中的变量。我猜这个线程Can I stopexecution of current module in ipython without leaves ipython是关于类似的问题,尽管与 PyCharm 没有特别相关。
如何在 PyCharm 中获得类似于 Spyder 的“停止当前命令”选项的停止选项,以便“停止”将变量保留在内存中,并且我可以从停止的地方继续?
请注意,调试模式 PyCharm 中的线程键盘中断不是与此重复的,因为它接受的答案也会导致关闭的内核。
虽然在 PyCharm 中通过运行/调试配置运行时可以暂停脚本,但不幸的是,在控制台中运行选择时“暂停”操作不可用,您请求的“停止”按钮也不可用。“停止”按钮的当前实现发送 SIGTERM/SIGKILL。
已为此问题创建功能请求:https ://youtrack.jetbrains.com/issue/PY-44346
| 归档时间: |
|
| 查看次数: |
6046 次 |
| 最近记录: |