使用自定义cmd选项运行web.py应用程序

时间:2012-04-03 19:37:29

标签: python web.py

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

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

#!/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

1 个答案:

答案 0 :(得分: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()