在程序结束后保持matplotlib数字打开

时间:2015-10-24 14:07:15

标签: python linux matplotlib workflow

是否可以运行生成图形(或图形)的Python代码并保持这些图形打开,即使在程序结束后也是如此?

目前,当我在代码末尾使用show()时,程序执行$ python somecode.py会暂停,直到我关闭数字(或数字)。从而使终端无法使用。

我是否需要为每个数字分配不同的作业ID,以便数字与主程序分开运行?如果是这样,我怎么能做到这一点?

当需要以不同的输入执行程序有限次数并且不想将每个结果数字存储为(单独的)文件时,这种需求变得明显。这对于快速比较很方便。

一个明显的解决方案是在单独的终端会话中运行程序。

2 个答案:

答案 0 :(得分:2)

不确定这是不是您所追求的,但您当然可以使用python在终端中作为后台流程启动&

像这样:

$ python somecode.py &
$ ...         # control is returned here immediately

它将在后台启动python并立即将控制权返回给终端。过了一会儿,绘图窗口将出现而不会阻塞终端。您可以通过这种方式触发多个python实例,从而在保持终端可用的同时打开多个绘图窗口。

请注意,您也可以在启动后将流程移至后台。之后

$ python somecode.py

终端已被屏蔽,但您可以在终端中按ctrl-z,然后按bg以在后台进程中启用该进程。

这当然是一般的shell功能,与Python无关。

答案 1 :(得分:2)

要继续显示图像,python仍必须正在运行。如果python仍在运行,那么在标准用法中,您将无法使用终端。

通常,使用此类工作流可以使用ipython,您可以在其中轻松运行所需的程序/代码/脚本,然后继续使用交互式解释器。

替代解决方案包括:
  - Moving the running process to the background
  - Running the process in the background
  - 在gnu screen中运行流程。