<p>gunicorn + argparse ne fonctionnent pas</p>

Créé le 7 oct. 2019  ·  4Commentaires  ·  Source: benoitc/gunicorn

J'essaie de dépolyer mon modèle pytorch avec le module argparse.
Il semble que le module argparse déclaré dans l'application remplacera les arguments de gunicorn.
Et j'ai rencontré un problème comme celui-ci :

usage: gunicorn [-h] [--mode MODE] [--batch_size BATCH_SIZE] [--warmup WARMUP]
                [--early_stop EARLY_STOP] [--seed SEED] [--t_total] [--lr LR]
                [--lr_decay_epochs LR_DECAY_EPOCHS]
                [--lr_decay_rate LR_DECAY_RATE]
                [--weight_decay_rate WEIGHT_DECAY_RATE] [--bert_lr BERT_LR]
                [--num_epochs NUM_EPOCHS] [--model_dir MODEL_DIR]
                [--model_path MODEL_PATH] [--num_workers NUM_WORKERS]
                [--train_dataset TRAIN_DATASET] [--eval_dataset EVAL_DATASET]
                [--test_dataset TEST_DATASET] [--bert_low_case BERT_LOW_CASE]
                [--bert_type BERT_TYPE] [--bert_hidden_size BERT_HIDDEN_SIZE]
                [--bert_dropout BERT_DROPOUT]
                [--bert_mention_max_len BERT_MENTION_MAX_LEN]
                [--bert_max_len BERT_MAX_LEN]
                [--bert_char_max_len BERT_CHAR_MAX_LEN]
                [--bert_entity_threshold BERT_ENTITY_THRESHOLD]
                [--bert_freeze] [--bert_threshold BERT_THRESHOLD]
                [--bert_adam] [--enhance_mention] [--interaction]
                [--context_dropout CONTEXT_DROPOUT]
                [--mention_dropout MENTION_DROPOUT]
                [--rnn_hidden_size RNN_HIDDEN_SIZE]
                [--rnn_num_layers RNN_NUM_LAYERS] [--rnn_dropout RNN_DROPOUT]
                [--rnn_num_dirs RNN_NUM_DIRS]
                [--cnn_embedding_dim CNN_EMBEDDING_DIM]
                [--cnn_output_dim CNN_OUTPUT_DIM] [--cnn_filters CNN_FILTERS]
                [--hierarchy_alpha HIERARCHY_ALPHA]
gunicorn: error: unrecognized arguments: -w 1 -b 0.0.0.0:3101 --reload -t 500 api:app

Les conseils dans la section ci-dessus sont les paramètres du modèle dans l'application.
Merci ~

Commentaire le plus utile

Pouvez-vous montrer comment vous créez votre application et analysez la CLI avec argparse ?

Gunicorn appelle parse_args sur sa propre instance de argparse . Vous pouvez implémenter une application personnalisée qui fait autre chose, ou vous pouvez vous assurer de muter sys.argv , ou passer vos propres arguments à parse_args , si vous l'appelez après le démarrage de Gunicorn.

https://docs.python.org/3/library/argparse.html#the -parse-args-method

Merci pour votre réponse, j'ai trouvé que si j'utilisais le module argparse dans mon APP comme args = parser.parse_args(sys.argv) , les arguments de gunicorn pourraient ne pas fonctionner.
J'essaye de le remplacer par args, unknown = parser.parse_known_args() , tout se passe bien.
Merci ~

Tous les 4 commentaires

Pouvez-vous montrer comment vous créez votre application et analysez la CLI avec argparse ?

Gunicorn appelle parse_args sur sa propre instance de argparse . Vous pouvez implémenter une application personnalisée qui fait autre chose, ou vous pouvez vous assurer de muter sys.argv , ou passer vos propres arguments à parse_args , si vous l'appelez après le démarrage de Gunicorn.

https://docs.python.org/3/library/argparse.html#the -parse-args-method

Pouvez-vous montrer comment vous créez votre application et analysez la CLI avec argparse ?

Gunicorn appelle parse_args sur sa propre instance de argparse . Vous pouvez implémenter une application personnalisée qui fait autre chose, ou vous pouvez vous assurer de muter sys.argv , ou passer vos propres arguments à parse_args , si vous l'appelez après le démarrage de Gunicorn.

https://docs.python.org/3/library/argparse.html#the -parse-args-method

Merci pour votre réponse, j'ai trouvé que si j'utilisais le module argparse dans mon APP comme args = parser.parse_args(sys.argv) , les arguments de gunicorn pourraient ne pas fonctionner.
J'essaye de le remplacer par args, unknown = parser.parse_known_args() , tout se passe bien.
Merci ~

Le problème peut-il être clos alors ? Avez-vous besoin d'aide pour analyser vos propres commutateurs de ligne de commande et les commutateurs gunicorn ensemble ?

Merci encore!

Cette page vous a été utile?
0 / 5 - 0 notes