dolphin23
@dolphin23
Новичок в программировании

Как запускать Process в скриптах которые импорируются?

Есть цикл с созданием процессов, он хорошо работает когда файл является основным и когда указывается
if __name__ == '__main__'

Вопрос в том, как запустить процессы без этого if __name__ ...
Когда импортирую файл где есть запуск процессов, выдает следующее
File "C:\Users\admin\AppData\Local\Programs\Python\Python310\lib\multiprocessing\process.py", line 121, in start
    self._popen = self._Popen(self)
  File "C:\Users\admin\AppData\Local\Programs\Python\Python310\lib\multiprocessing\context.py", line 224, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
  File "C:\Users\admin\AppData\Local\Programs\Python\Python310\lib\multiprocessing\context.py", line 327, in _Popen
    return Popen(process_obj)
  File "C:\Users\admin\AppData\Local\Programs\Python\Python310\lib\multiprocessing\popen_spawn_win32.py", line 93, in __init__
    reduction.dump(process_obj, to_child)
  File "C:\Users\admin\AppData\Local\Programs\Python\Python310\lib\multiprocessing\reduction.py", line 60, in dump
    ForkingPickler(file, protocol).dump(obj)
AttributeError: Can't pickle local object 'start.<locals>.f1'
PS C:\Users\admin\Desktop\....> Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\admin\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 102, in spawn_main
    source_process = _winapi.OpenProcess(
OSError: [WinError 87] Параметр задан неверно
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
AttributeError: Can't pickle local object 'start.<locals>.f1'

Вынеси функцию, которую загоняешь в процесс, на верхний уровень модуля. Не делай её локальной в другой функции.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы