Сценарий python, зависший с помощью cx_freeze, вылетает при создании нового многопроцессорного процесса - PullRequest
2 голосов
/ 13 января 2020

Программа:

import multiprocessing
import logging

logging.basicConfig(filename="freeze_test.log", level=logging.DEBUG)


def do(nothing, more_nothing):
    logging.info("process executed")


if __name__ == "__main__":
    multiprocessing.freeze_support()
    logging.info("start freeze test")
    multiprocessing.Process(target=do, args=("something", "more_something")).start()

Настройка cx_freeze:

from cx_Freeze import setup, Executable

setup(
    name = "freeze_test",
    options = {"build_exe":{"packages":["multiprocessing"]}},
    executables = [Executable(script="freeze_test.py", base = "win32GUI")]
)

Запуск незамерзшей программы работает просто отлично ... Запуск замороженной программы выдает мне следующие ошибки:

ERROR 1 ERROR 2

Я использую python 3.7 на windows 10 ... Я действительно застрял с этой проблемой, любая помощь будет принята с благодарностью.

Редактировать: В документации о многопроцессорной обработке говорится, что методы запуска spawn и forkserver не могут использоваться с зависшими программами, однако вы должны использовать spawn на Windows. - Так что в настоящее время невозможно использовать многопроцессорную работу с замороженными программами на Windows?

...