문제
위와 같이 arg_parse.py파일이 있을때 gunicorn으로 파이썬을 실행시켰을 때 해당 모듈의 get_args()함수를 실행시키는 코드가 있었다.
이 때 gunicorn 실행 인자들을 argparse가 인식하여 실행 인자들이 충돌해 오류가 발생하는 문제가 있었음.
argparse 사용
arg_parser.py
import argparse
def get_args():
parser = argparse.ArgumentParser(description="Example with required argument")
parser.add_argument('--myarg', type=str, help="A required argument")
parser.add_argument('--myarg2', type=str, required=True, help="A required argument")
args = parser.parse_args()
return args
gunicorn 실행 명령어
gunicorn main:app --log-level debug --access-logfile
해결
parse_args()
함수를 parse_known_args()
함수로 변경하여 알고있는 인자와 모르는 인자를 분리한다.
parser = argparse.ArgumentParser(description="Example with required argument")
parser.add_argument('--myarg', type=str, help="A required argument")
parser.add_argument('--myarg2', type=str, help="A required argument")
args, unknown = parser.parse_known_args()
print(args)
# NameSpace(myarg=None)..
print(unknown)
# ['main:app', '--log-level', 'debug',..]
이 문서는
jhy156456에 의해 작성되었습니다.
마지막 수정 날짜:2024-08-07 02:20:00