如何从mod_python.publisher调用带参数的python脚本的main()?
我在用mod_python的发布者功能,它会调用另一个Python脚本的main()函数,并传入一个自定义的参数列表argv。当我在命令行中执行这个发布者脚本时,一切正常。但是当我通过apache2和mod_python来运行时,却出现了一个错误(如下所示),提示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中,main()函数是这样定义的:
def main(argv=None):
--code--
注意:如果没有传递这个参数列表,aba.main()会从mod_python中执行。
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 个回答
0
第一条日志信息是:
aba.main([ "aba.py","-i", "-b"])
你说main是这样定义的:
def main(argv=None):
所以aba
作为第一个参数传入main(),这个参数被用作argv
,然后就没有其他参数可以传入了。
我觉得这和mod_python
没有关系。