0

カスタムビルドの argv リストを使用して、別の python スクリプトの main() 関数を呼び出す mod_python パブリッシャー関数を使用します。シェル コマンド ラインからパブリッシャー スクリプトを実行すると、機能します。しかし、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 引数が渡されない場合、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())
4

1 に答える 1

0

最初のログ ステートメントは次のように述べています。

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

そして、メインは次のように定義されていると言います:

def main(argv=None):

したがってaba、引数を受け取る main() に最初の引数として渡され、argvそのリストを渡すための引数が残っていません。

とは関係ないと思いますmod_python

于 2015-01-22T19:17:22.540 に答える