2010-12-30 5 views
1

이 질문은 PythonWin에서 (F5 키를 눌러) 실행하지 않고 명령 프롬프트에서 실행하는 다중 처리 스크립트에서이 문제점을 표시하도록 업데이트되었습니다. 내 스크립트 - 나는 (F5 누름)를 PythonWin에서 위의 스크립트를 실행하면PythonWin에서 다중 처리 스크립트를 실행할 수 없습니다.

""" 
File Name: simple multiprocess example.py 
Description: 
A very basic multiprocessing script to show the use of daemon. 
There are two processes:- 
p1 - calls listen() and runs in the background (daemon = True) 
p2 - calls write() 
""" 
import multiprocessing 
import time 
import sys 

def listen(): 
    p = multiprocessing.current_process() 
    p_name = str(p.name) 
    pid = str(p.pid) 
    while 1: 
     print "%s process with PID %s running: %s" % (p_name, pid, time.asctime()) 
     time.sleep(1) 
    print 'Exiting :', p.name, p.pid 

def write(): 
    p = multiprocessing.current_process() 
    p_name = str(p.name) 
    pid = str(p.pid) 
    for x in xrange(3): 
     print "%s process with PID %s running: %s" % (p_name, pid, time.asctime()) 
     time.sleep(1) 
    print 'Exiting :', p.name, p.pid 

if __name__ == '__main__': 
    p1 = multiprocessing.Process(name='listen', target=listen) 
    p1.daemon = True 

    p2 = multiprocessing.Process(name='write', target=write) 
    p2.daemon = False 

    p1.start() 

    p2.start() 
    time.sleep(7) 

는 팝업 메시지 (제목 "는 Win32를위한 파이썬"에) 온다 말하는 "-c에서 파일을로드 할 수 없습니다 " 내 파일 이름은 전체 경로와 같습니다.

명령 프롬프트에서 동일한 스크립트를 실행하면 문제없이 완벽하게 실행되는 것 같습니다. 명령 프롬프트에서 실행할 때 다음과 같은 결과가 나타납니다. -

s>"simple multiprocess example.py" 
listen process with PID 4564 running: Tue Jan 04 09:32:49 2011 
write process with PID 3744 running: Tue Jan 04 09:32:49 2011 
listen process with PID 4564 running: Tue Jan 04 09:32:50 2011 
write process with PID 3744 running: Tue Jan 04 09:32:50 2011 
listen process with PID 4564 running: Tue Jan 04 09:32:51 2011 
write process with PID 3744 running: Tue Jan 04 09:32:51 2011 
listen process with PID 4564 running: Tue Jan 04 09:32:52 2011 
Exiting : write 3744 
listen process with PID 4564 running: Tue Jan 04 09:32:53 2011 
listen process with PID 4564 running: Tue Jan 04 09:32:54 2011 
listen process with PID 4564 running: Tue Jan 04 09:32:55 2011 

이 문제와 관련된 온라인을 찾을 수 없습니다. 도움을 주셔서 감사합니다 !!

미트 P.S : 나는 윈도우 XP를 PythonWin에 그것을 실행하고, 파이썬 2.6.4v

답변

4

당신은 당신이 평 파일에 실행할 코드를 저장해야합니다. 다중 처리는 단순히 대화식 모드로 입력 된 코드의 실행을 지원하지 않습니다.

+0

답장을 보내 주셔서 감사합니다. 하지만 파이썬 파일에 코드 집합을 넣고 F5 키를 눌러 파이썬 파일을 실행하더라도 동일한 오류가 발생합니다. – abarik

+0

'if __name __ == '__ main __''블록에 주 코드가 있는지 확인하십시오. 도움이되지 않는 경우 : 실행하려는 전체 코드를 게시하십시오. –

+0

나는 메인 코드를 가지고있다. 나는 또한 질문을 업데이트했다. 대답을 얻었 으면 알려주세요. 감사합니다. Amit – abarik

관련 문제