NppExec - 如何自动终止进程

NppExec - 如何自动终止进程

我在 Notepad++ 上编写 Python 代码,经常使用 matplotlib。如果我打开了一个图并想重新运行代码,就会出现一个烦人的对话框,提示“NppExec - 警告 - 控制台进程仍在运行”。

这个问题之前已经提出过,但开发人员似乎有点固执?我只是想知道 2019 年这个问题是否得到解决,或者是否有人想出了可行的解决方法。

如果没有,是否有人推荐其他适合 python + 机器学习的文本编辑器。

答案1

看起来 NppExec 手册第 4.6.4 节中提到了类似的情况。运行 Python 和 wxPython。它提到

set local @exit_cmd_silent = exit()  // allows to exit Python automatically

应该在运行 python 进程之前设置。在这种情况下,当 NppExec 的控制台关闭或即将运行新的 NppExec 脚本时,将@exit_cmd_silent自动调用中指定的命令。在这个确切的例子中,exit()将发送到 python 进程。同样,如果您想杀死 python 进程而不是发送exit()给它,您可以指定:

set local @exit_cmd_silent = nppexec:TASKKILL /F /IM python.exe

您可以help @exit_cmd在 NppExec 的控制台中输入来查看有关@exit_cmd_silent和的帮助@exit_cmd

答案2

截至撰写本文时(2019 年 12 月),您询问的警告对话框仍然存在。“绕过”此警告的最简单方法是在重新运行代码之前关闭绘图(无论下面介绍的步骤如何)。

“自动化”解决方案


注意:这些步骤假设您在 Windows 上运行 Notepad++。


作为每次手动关闭绘图的替代方法,您应该能够在 NppExec 中运行例如:

TASKKILL /F /IM python.exe
CMD /C START "" /MIN python "$(FULL_CURRENT_PATH)"

你应该看看任务终止命令开始分别详细解释每个命令的选项,但本质上这些命令会终止任何现有python.exe进程,然后产生另一组与 NppExec/Notepad++ 分离的进程(因此它们不需要在再次运行一组新进程之前终止)。

需要注意的是,这不会阻止任何预先存在的窗口发出警告。您仍然需要先手动关闭它们。


"$(FULL_CURRENT_PATH)"是 Notepad++ 内置变量,需要当前文档具有现有路径(即已保存)才能正常工作。否则,您可以直接使用代码的完整路径(例如C:\path\to\code.py)。


相关内容