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

时间:2009-12-22 01:36:39

标签: python mod-python

我使用mod_python发布者函数,该函数使用自定义构建的argv列表调用另一个python脚本的main()函数。当我从shell命令行执行发布者脚本时,它可以工作。但是当我用mod_python通过apache2尝试它时,我得到的错误(如下所示)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--

注意:如果未传递list参数,则从mod_python执行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 个答案:

答案 0 :(得分:0)

第一个日志声明说:

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

你说main定义为:

def main(argv=None):

因此,aba作为第一个参数传入main(),它接受argv参数,然后没有任何参数可以传递该列表。

我认为这与mod_python没有任何关系。