При использовании multiprocessing идёт зацикливание после компиляции pyinstaller

Рейтинг: 0Ответов: 1Опубликовано: 18.01.2023

Я использую multiprocessing и столкнулся с проблемой. После компиляции программы в exe с помощью pyinstaller, почему-то всё начиная с print('123') зацикливается.

Когда я запускаю не скомпилированный скрипт, то всё работает нормально.

import multiprocessing

def main():
    while True:
        pass

if __name__ == '__main__':
    main_process = multiprocessing.Process(target=main)
    main_process.start()
    print('123')

Ответы

▲ 0

Единственное что приходит на ум, что вопрос был - почему скрипт не прерывается после print('123'), если мы не делали main_process.join().

Ответ - потому, что есть аргумент daemon который по умолчанию False.

Чтобы скрипт прервался, он должен быть True - multiprocessing.Process(target=main, daemon=True)