如何从mod_python.publisher调用带参数的python脚本的main()?

0 投票
1 回答
1663 浏览
提问于 2025-04-15 17:16

我在用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没有关系。

撰写回答