【Python】Python3 Windows環境で「module ‘os’ has no attribute ‘fork’」エラーが出た時の対応

DEVELOP, Python

Python3 の Windows 環境ではos.fork モジュールが無い。そのため multiprocessing を使うなどして置き換える必要があります。

目次

os.fork を使った場合

import os
 
print('Process (%s) start...' % os.getpid())
 
pid = os.fork()
if pid == 0:
    print('I am child process (%s) and my parent is %s.' % (os.getpid(), os.getppid()))
else:
    print('I (%s) just created a child process (%s).' % (os.getpid(), pid))

multiprocessing を使った場合


from multiprocessing import Process
import os
 
def run_proc(name):
    print('Run child process %s (%s)...' % (name, os.getpid()))
 
print('Parent process %s.' % os.getpid())
p = Process(target=run_proc, args=('test',))
print('start child process.')
p.start()
p.join()
print('end child process.')

これで動作します。

Posted by kazupon