Я успешно реализовал многопроцессорный скрипт в Windows, но тот же скрипт запускает «RuntimeError: уже запущен» в Linux и останавливает выполнение.Сценарий состоит из следующего "main.py" (пропущена некоторая часть для удобства чтения):
from multiprocessing import freeze_support
if __name__ == '__main__':
#MULTIPROCESSING STUFF
freeze_support()
#DO SOME STUFF
#Call my multiprocessing-function in other module
mod2.func(tileTS[0], label, areaconst)
и модуля "mod2.py":
import numpy as np
from multiprocessing import Pool
from functools import partial
import os, time
def func(ts, label, areaconst):
#SETTING UP/LOADING SOME VARIABLES
for idx in totImgs:
img_ = myList[idx]
p = Pool(2)
result = p.map( partial(_mp_avg, var1=var1_, img=img_), range(totObjs) )
p.close()
p.join()
#MANAGE RESULTING VARIABLES
return None
def _mp_avg(idx, img, var1):
num = idx + 1
arr = img[var1==num]
if np.isnan(arr).any():
return np.nan
else:
return np.sum( arr )
Эта ошибка запущенакогда скрипт выполняет функцию / класс «Pool.map» (не знаю).Тот же код работает безупречно в Windows.
Я использую Ubuntu 18.04 и запускаю скрипт python 3.6.7 из кода Visual Studio.
EDIT: добавлен снимок экрана с ошибками во время выполнения