인공지능을 좋아하는 곧미남

[python] argparse Error: SystemExit: 2 본문

code_study/python world

[python] argparse Error: SystemExit: 2

곧미남 2024. 12. 2. 18:50

오늘은 argparse를 활용할때 발생한 SystemExit: 2 Error에 대해서 해결하는 방법을 알려드리겠습니다.

 


 

기존 코드

    parser = argparse.ArgumentParser(description='Google Speech Command Data download')
    parser.add_argument("--data_root", required=True, default=None, type=str)
    parser.add_argument('--data_version', required=True, default=2, type=int, choices=[1, 2])
    parser.add_argument('--class_split', required=False, default='sub', type=str, choices=['all', 'sub'])
    parser.add_argument('--rebalance', required=False, action='store_true')
    parser.add_argument('--skip_duration', required=False, action='store_true')
    parser.add_argument('--log', required=False, action='store_true')
    parser.set_defaults(log=False, rebalance=False, skip_duration=False)
    args = parser.parse_args()

 

개선 코드

    parser = argparse.ArgumentParser(description='Google Speech Command Data download')
    parser.add_argument("--data_root", default="D:/STT_project/Keyword-Spotting-ConvMixer/dataset", type=str)
    parser.add_argument('--data_version', default=2, type=int, choices=[1, 2])
    parser.add_argument('--class_split', default='sub', type=str, choices=['all', 'sub'])
    parser.add_argument('--rebalance', required=False, action='store_true')
    parser.add_argument('--skip_duration', required=False, action='store_true')
    parser.add_argument('--log', required=False, action='store_true')
    parser.set_defaults(log=False, rebalance=False, skip_duration=False)
    args = parser.parse_args()

 

기존에는 parser.add_argument()의 파라미터 중에 required와 default를 같이 사용해버려서 SystemExit: 2라는 error가 args = parser.parse_args() 라인에서 발생했습니다.

 

SystemExit: 2 에러 발생.
   

parser.add_argument()에 default 파라미터가 있는데, required=True로 설정하면 충돌로 오류 발생!
    
default 했으면, required는 없애라!

 

이상입니다.

반응형
Comments