我有一个小脚本创建不同的图。由于没有共享数据,我可以进行一些多处理。使用python2.7,没问题。使用python3.6,我似乎无法使其工作。 我正在使用池(https://docs.python.org/3/library/multiprocessing.html和https://docs.python.org/2/library/multiprocessing.html)因为我不共享对象或任何东西。 对于Python3,我遇到了没有回溯的崩溃(图= plt.figure(number))。 我在MacOs X sierra上运行。我认为问题与此主题相同(Saving multiple matplotlib figures with multiprocessing)。不幸的是,这个问题并没有真正解决,因为它不是主要问题。
一个快速的答案是使用python2.7,但我的其他工作依赖于python3 +功能。 关于如何至少跟踪回溯的任何想法(详细模式没有显示与崩溃有关的任何内容),然后解决这个问题?
非常感谢
这是产生错误的最小代码,来自上面提到的线程。 (此代码将在脚本的文件夹中创建4个文件。)
import matplotlib.pyplot as plt
import numpy.random as random
from multiprocessing import Pool
def do_plot(number):
fig = plt.figure(number)
a = random.sample(100)
b = random.sample(100)
plt.scatter(a, b)
plt.savefig("%03d.jpg" % (number,))
plt.close()
print("Done ", number)
if __name__ == '__main__':
pool = Pool()
pool.map(do_plot, range(4))