Я создал сценарий (plot.py
), который изображает фигуру Матплотлиба. Я хотел бы, чтобы сценарий отображал фигуру, а затем сразу же выходил, но оставил фигуру открытой. Я знаю, что могу сделать это, используя амперсанд в окне терминала:Завершить фигуру и выйти, но оставить окно фигуры открытым
$ plot.py &
, но я хотел бы, чтобы не вводить амперсанд каждый раз, и сделать это разветвление новый процесс вместо этого, я попробовал:
import matplotlib.pyplot as plt
import numpy as np
from multiprocessing import Process
import multiprocessing
def main():
p = Process(target=showFigure)
p.start()
p.join()
def showFigure():
p = multiprocessing.current_process()
print ('Starting: {} {}'.format(p.name, p.pid))
x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x)
plt.figure()
plt.plot(x, y)
plt.title('Simple test')
plt.show()
if __name__ == '__main__':
main()
Но это не работает. Я также попытался удалить p.join()
и использовать daemon=True
..
Процесс является владельцем объектов GUI, если он выходит, окна должны закрываться. – tacaswell