python
  • uwsgi
  • argparse
  • 2014-11-16 3 views 2 likes 
    2

    나는 argparse와 플라스크 응용 프로그램에 인수를 전달하기 위해 노력하고있어 : 내가 직접 스크립트를 실행할 때uwsgi 구성에서 인수를 전달하는 방법은 무엇입니까?

    app = Flask(__name__) 
    
    parser = argparse.ArgumentParser() 
    parser.add_argument("-e", "--environ", dest='environ', default='production', 
            help="Server environment") 
    args = parser.parse_args() 
    
    if args.environ == 'dev': 
        app.config.from_pyfile("dev.cfg", silent=True) 
    else: 
        app.config.from_pyfile("product.cfg", silent=True) 
    

    모든 것이 OK입니다. 그러나 uwsgi 구성 파일에서 "-e dev"인수를 전달하는 방법을 모르겠지만 pyargv은 이러한 종류의 인수를 처리 할 수 ​​없습니다.

    +1

    pyargv 단순히 sys.argv에 목록을 채 웁니다. 따라서 argparse로 사용할 수 있습니다 (모든 pAr arg 파서가) 그 목록을 읽습니다. – roberto

    +0

    맞습니다! 키워드 인수 대신 위치 인수를 사용하고 uwsgi는 현재 잘 작동합니다. 그리고 나는 여전히 uwsgi에서 키워드 인수를 전달할 방법이 있는지 알고 싶습니다. – Vayn

    +1

    키워드 인수 같은 것이 없습니다. 시스템은 인수를 파이썬 엔진이 sys.argv list에 매핑하는 벙어리 배열로 전달합니다. argparse는 관례에 따라이 목록을 구문 분석합니다. --payargv "-e foobar"는 완벽하게 유효합니다. – roberto

    답변

    -2

    이 코드를 사용할 수 있습니다

    parser.add_argument("-e", "--environ", dest='environ', default='production', help="Server environment", required=False) 
    
    관련 문제