我使用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)
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())
答案 0 :(得分:0)
第一个日志声明说:
aba.main([ "aba.py","-i", "-b"])
你说main定义为:
def main(argv=None):
因此,aba
作为第一个参数传入main(),它接受argv
参数,然后没有任何参数可以传递该列表。
我认为这与mod_python
没有任何关系。