У меня есть многопроцессорная функция, которая прекрасно работает в Spyder, например:
if __name__ == '__main__':
global results
p = Pool(20)
results = p.map(get_api_item, date_list)
p.terminate()
p.join()
Когда я запускаю этот файл .py в задаче «Выполнение процесса» в SSIS, я получаю эту ошибку:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "E:\Python\Anaconda3\lib\multiprocessing\spawn.py", line 105, in spawn_ma
in
exitcode = _main(fd)
File "E:\Python\Anaconda3\lib\multiprocessing\spawn.py", line 114, in _main
prepare(preparation_data)
File "E:\Python\Anaconda3\lib\multiprocessing\spawn.py", line 225, in prepare
_fixup_main_from_path(data['init_main_from_path'])
File "E:\Python\Anaconda3\lib\multiprocessing\spawn.py", line 277, in _fixup_m
ain_from_path
run_name="__mp_main__")
File "E:\Python\Anaconda3\lib\runpy.py", line 263, in run_path
pkg_name=pkg_name, script_name=fname)
File "E:\Python\Anaconda3\lib\runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "E:\Python\Anaconda3\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "<path to api>\api.py", line 29, in <module>
result = pd.concat(results)
NameError: name 'results' is not defined
Это потому, что служба (SSIS), вероятно, не вызывает его main
. Как мне исправить это?