我想使用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
答案 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()