Ejecución de la aplicación web.py con opciones de cmd personalizadas
Frecuentes
Visto 653 veces
2
Me gustaría usar web.py para crear una interfaz http para una biblioteca más grande, que también proporciona un script de línea de comando que toma parámetros opcionales.
Cuando probé el ejemplo del tutorial web.py simple en combinación con optparse, tengo el problema de que web.py siempre toma el primer argumento cmd como puerto, que no es lo que quiero. ¿Hay alguna manera de decirle a web-py que no verifique los argumentos de la línea de comando? Aquí hay un ejemplo:
#!/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()
... que quiero ejecutar de la siguiente manera:
python web_interface.py -t 10
1 Respuestas
1
Es un poco complicado, pero supongo que podrías hacerlo:
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()
Respondido 03 Abr '12, 21:04
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas python web.py or haz tu propia pregunta.
Estaba teniendo un problema similar y lo resolvió editando.
sys.argv
para eliminar cadenas adicionales antes de que lleguen a la aplicación web.py según este respuesta. - cardamom