Почему многопроцессорный модуль Python импортирует __main__ при запуске нового процесса в Windows?

Я играю с библиотекой для моих начинающих учеников, и ям, используя многопроцессорный модуль в Python. Я столкнулся с этой проблемой:импорт и использование модуля, который использует многопроцессорность, не вызывая бесконечный цикл в Windows

В качестве примера, предположим, у меня есть модуль:mylibrary.py

# mylibrary.py

from multiprocessing import Process

class MyProcess(Process):
    def run(self):
        print "Hello from the new process"

def foo():
    p = MyProcess()
    p.start()

И основная программа, которая вызывает эту библиотеку:

# main.py

import mylibrary

mylibrary.foo()

Если я бегуmain.py в Windows он пытается импортировать main.py в новый процесс, то есть код выполняется снова, что приводит к бесконечному циклу генерации процесса. Я могу это исправить так:

import mylibrary

if __name__ == "__main__":
    mylibrary.foo()

Но это довольно запутанно для начинающих, и, более того, похоже, чтоЭто будет необходимо. Новый процесс создается вmylibraryтак почему нет новый процесс просто импортироватьmylibrary? Есть ли способ обойти эту проблему без необходимости изменения?main.py

Я использую Python 2.7, кстати.

Ответы на вопрос(1)

Ваш ответ на вопрос