Почему многопроцессорный модуль 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, кстати.