У меня есть программа Python 2.7 (Windows 10) с импортированным модулем архива (https://arch.readthedocs.io/en/latest/index.html)
Работает при запуске в виде одного файла сценария, но с У меня ошибка при многопроцессорной обработке.
В качестве простого примера я выполняю
import multiprocessing as mp
# from arch.univariate import arch_model
def f(worker_num,return_dict):
return_dict[worker_num] = ['dummy']
if __name__ == '__main__':
manager = mp.Manager()
return_dict = manager.dict()
procs=[]
for i in range(2):
proc = mp.Process(target=f, args=(i+1,return_dict))
procs.append(proc)
for i in procs:
i.start()
for i in procs:
i.join()
print return_dict
Ответ правильный
{1: ['dummy'], 2: ['dummy']}
Если строка с arch_model не закомментирована, хотя у меня есть следующее
Traceback (most recent call last):
File "<ipython-input-39-f8ffa09f5a0d>", line 1, in <module>
runfile('C:/Users/Home/.spyder/trydummy.py', wdir='C:/Users/Home/.spyder')
File "C:\Python\Anaconda2\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 704, in runfile
execfile(filename, namespace)
File "C:\Python\Anaconda2\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 93, in execfile
exec(compile(scripttext, filename, 'exec'), glob, loc)
File "C:/Users/Home/.spyder/trydummy.py", line 11, in <module>
manager = mp.Manager()
File "C:\Python\Anaconda2\lib\multiprocessing\__init__.py", line 99, in Manager
m.start()
File "C:\Python\Anaconda2\lib\multiprocessing\managers.py", line 528, in start
self._address = reader.recv()
EOFError
Библиотека Arch находится в c:\Python\Anaconda2\Lib\site-packages\arch\
и прекрасно работает, когда никакая многопроцессорная обработка не выполняется.
Я прочитал Python, Windows и Multiprocessing отвечают, но я не могу воссоздать решение в моем случае. Может ли кто-нибудь помочь?