Как вызвать main () скрипта python с аргументами из mod_python.publisher? - PullRequest
0 голосов
/ 22 декабря 2009

Я использую функцию издателя 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())

1 Ответ

0 голосов
/ 22 января 2015

Первый оператор записи говорит:

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

И вы говорите, что главный определяется как:

def main(argv=None):

Поэтому aba передается в качестве первого аргумента в main (), который принимает аргумент argv, а затем не остается аргументов для передачи этого списка.

Не думаю, что это как-то связано с mod_python.

...