如果我尝试启动创建matplotlib图形的进程,则在尝试创建图形时,该进程会挂起。以下是一些可以重现问题的代码:
from matplotlib import pyplot as plt
from multiprocessing import Process
import numpy as np
def plotit():
data = np.cos(np.linspace(0, 10, 100))
print 'Gets Here'
plt.figure()
print 'But This is never printed.'
plt.plot(data)
plt.show()
def main():
p = Process(target=plotit)
p.start()
print raw_input('Press Enter when Done>>')
if __name__ == '__main__':
main()
这个输出是:
Press Enter when Done>>Gets Here
所以它似乎冻结了plt.figure()
。
注意:代码似乎在linux上运行正常 - 它在Mac上失败了!(我的matplotlib后端在两种情况下都是TkAgg)。 (Python 2.7.12,matplotlib 2.0.2。,OSX Sierra 10.12)
有什么方法吗?