2011-11-07 3 views
2

리눅스 & 윈도우 박스에서 파이썬 버전 2.7.2를 실행하고 있습니다. multiprocessing.Process을 사용하여 하위 프로세스를 생성하는 스크립트를 실행 중이며 원하는 작업 인 &을 기다린 다음 마침내 종료하십시오. 이것은 Linux에서 잘 작동하지만 windows에서는 process.start을 수행하는 동안주고받습니다. Windows 시스템에Process.start가 윈도우에서 작동하지 않습니다.

pobj = Process(target = foo, args=(bar,)) 
pobj.start() 

오류 :

WindowsError: [Error 2] The system cannot find the file specified 

내가 몇 가지 기본적인 디버깅을했고, 오류가 C "에서 오는 발견 : 다음 샘플 코드입니다 \ Python27 \ lib 디렉토리 \ 멀티 \ forking.py "file line no 255.

답변

3

Windows에는 fork() 시스템 호출이 없으므로, multiprocessing 모듈은 프로세스를 포크하려면 약간의 마술을해야합니다. 기본적으로 프로그램의 진입 점을 추측하고 포크가 발생하기 전에 실행 된 모든 코드를 건너 뜁니다. 자세한 내용은 the platform-specific documentation를 참조 -

아마 당신은 코드가 윈도우에서 작업에 필요한 코드,의

if __name__ == '__main__': 

경비를 포함하지 않았다.

+1

감사합니다 Sven, 제 경우 In this snippet은 다른 Module에 있으며 "if __name__ == '__main__':"이있는 Main 스크립트에서 호출됩니다. – Rohit

관련 문제