2

我想使用 web.py 为一些更大的库构建一个 http 接口,它还提供了一个带有可选参数的命令行脚本。

当我尝试结合 optparse 的简单 web.py 教程示例时,我遇到的问题是 web.py 总是将第一个 cmd 参数作为端口,这不是我想要的。有没有办法告诉 web-py 不要检查命令行参数。这是一个例子:

#!/usr/bin/env python
# encoding: utf-8
"""
web_interface.py: A simple Web interface

"""

import optparse
import web

urls = ("/.*", "hello")
app = web.application(urls, globals())

class hello:
    def GET(self):
        return 'Hello, world!\n'

if __name__ == "__main__":
    p = optparse.OptionParser()
    p.add_option('--test', '-t', help="the number of seed resources")
    options, arguments = p.parse_args()
    print options.test
    app.run()

...我想按如下方式运行:

python web_interface.py -t 10
4

1 回答 1

1

这有点骇人听闻,但我想您可以这样做:

import sys
...

if __name__ == "__main__":
    p = optparse.OptionParser()
    p.add_option('--test', '-t', help="the number of seed resources")
    options, arguments = p.parse_args()
    print options.test

    # set sys.argv to the remaining arguments after
    # everything consumed by optparse
    sys.argv = arguments

    app.run()
于 2012-04-03T20:04:17.830 回答