es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Uso: ipykernel_launcher.py [-h] [-v VIDEO] [-i IMAGEN] [-c CÁMARA] [-o SALIDA]

Estoy intentando ejecutar el “argparser” y el error es:

usage: ipykernel_launcher.py [-h] [-v VIDEO] [-i IMAGE] [-c CAMERA]
[-o OUTPUT]
ipykernel_launcher.py: error: argumentos no reconocidos: -f /root/.local/share/jupyter/runtime/kernel-6bea2aa0-717c-4cb5-8793-534ee75b255f.json
Se ha producido una excepción, usa %tb para ver el seguimiento completo.
SystemExit: 2

Mi código “argparser” es:

def argsParser():
    argparse = argparse.ArgumentParser()
    argparse.add_argument("-v", "--video", default=None, help="ruta al archivo de video")
    argparse.add_argument("-i", "--image", default=None, help="ruta al archivo de imagen")
    argparse.add_argument("-c", "--camera", default=False, help="Establece en Verdadero si deseas utilizar la cámara.")
    argparse.add_argument("-o", "--output", type=str, help="ruta opcional al archivo de video de salida")
    args = vars(argparse.parse_args())
    argparse.add_argument('-f')

return args

if __name__ == "__main__":
    HOGCV = cv2.HOGDescriptor()
    HOGCV.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())

args = argsParser()
humanDetector(args)

¿Podrías ayudarme con lo que debo hacer? (por cierto, estoy usando Google Colaboratory)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el módulo argparse no reconoce el argumento -f que se incluye automáticamente en la línea de comandos por Jupyter Notebook. Para resolver este problema, puedes modificar tu función argsParser() para que ignore cualquier argumento no reconocido añadiendo el parámetro allow_abbrev=False al constructor ArgumentParser de la siguiente manera:

    def argsParser():
        arg_parse = argparse.ArgumentParser(allow_abbrev=False)
        arg_parse.add_argument("-v", "--video", default=None, help="ruta al archivo de video")
        arg_parse.add_argument("-i", "--image", default=None, help="ruta al archivo de imagen")
        arg_parse.add_argument("-c", "--camera", default=False, help="Establecer en True si quieres usar la cámara.")
        arg_parse.add_argument("-o", "--output", type=str, help="ruta opcional al archivo de video de salida")
        args = vars(arg_parse.parse_args())
    
        return args
    

    Esto evitará que argparse genere un error por cualquier argumento que no reconozca.

    Alternativamente, puedes modificar los argumentos de línea de comandos pasados a tu bloc de notas para excluir el argumento -f, por ejemplo:

    python ipykernel_launcher.py --ip=127.0.0.1 --stdin=9000 --stdout=9001 --stderr=9002 --control=9003
    

    Ten en cuenta que debes reemplazar los números de puerto reales con los que correspondan a tu sesión de kernel actual.

Comments are closed.