2009-12-22 1 views
0

커스텀 빌트인 argv리스트로 다른 파이썬 스크립트의 main() 함수를 호출하는 mod_python 퍼블리셔 함수를 사용합니다. 셸 명령 줄에서 게시자 스크립트를 실행하면 작동합니다. 하지만 mod_python으로 apache2를 사용해 보았을 때 main (은)는 인수를 취하지 않는 에러 (아래와 같이)가 발생했습니다.mod_python.publisher의 인수를 사용하여 파이썬 스크립트의 main()을 호출하는 방법은 무엇입니까?


File "/var/www/wabaServ/waba.py", line 15, in index 
    aba.main([ "aba.py","-i", "-b"]) 

TypeError: main() takes no arguments (1 given) 

주() aba.py에 다음과 같이 정의된다

def main(argv=None): 
--code-- 

가 참고 : 목록 인수가 전달되지 않은 경우이 aba.main()가 실행됩니다 mod_python.

import sys 
sys.path.append("/u/scripts") 
import aba 
from cStringIO import StringIO 

def index(): 

    old_stdout = sys.stdout 
    sys.stdout = mystdout = StringIO() 
    aba.main([ "aba.py","-i", "-b"]) 
    sys.stdout = old_stdout 
    return(mystdout.getvalue()) 
+1

'main'의 바인딩을 변경하는 다른 코드 (아마도'aba.py '에 있음)가 있어야합니다. 그렇지 않으면 설명하는 증상은 불가능합니다. –

+0

또는'mod_python'에 설정 문제가 있습니다. 실제로 실행중인 것으로 주장하는 것을 실행하고 있지 않습니다. 'sys.path' 파일을 로깅 파일에 덤프하여 실제로 실행해야한다고 생각하는 것을 실행하고 있는지 확인하십시오. –

답변

0

첫 번째 로깅 문은 말한다 : 전달 따라서

def main(argv=None): 

aba :로

aba.main([ "aba.py","-i", "-b"]) 

그리고 당신은 주 말이 정의처럼

mod_python을 게시자 기능 본다 main()에 대한 첫 번째 인수로는을 사용합니다.인수와 그 목록을 전달할 수있는 인수가 남아 있지 않습니다.

나는 이것이 mod_python과 관련이 있다고 생각하지 않습니다.