Я использую функцию издателя mod_python, которая вызывает функцию main () другого скрипта python со специально созданным списком 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)
main () в aba.py определяется как:
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())