Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 防止瓶子';s后端服务器插件(gunicorn),用于拦截命令行参数_Python 3.x_Gunicorn_Bottle - Fatal编程技术网

Python 3.x 防止瓶子';s后端服务器插件(gunicorn),用于拦截命令行参数

Python 3.x 防止瓶子';s后端服务器插件(gunicorn),用于拦截命令行参数,python-3.x,gunicorn,bottle,Python 3.x,Gunicorn,Bottle,当我运行以下代码时: import argparse from bottle import Bottle, run app = Bottle() @app.get('/') def get_fn(): return 'Testing' def command_line(): parser = argparse.ArgumentParser() parser.add_argument('-k', '--sslkey', nargs='?', default=None,

当我运行以下代码时:

import argparse
from bottle import Bottle, run

app = Bottle()

@app.get('/')
def get_fn():
    return 'Testing'

def command_line():
    parser = argparse.ArgumentParser()
    parser.add_argument('-k', '--sslkey', nargs='?', default=None,
                        help='SSL key file')
    parser.add_argument('-c', '--sslcrt', nargs='?', default=None,
                        help='SSL certificate file')
    return parser.parse_args()

if __name__ == "__main__":
    args = command_line()
    run(app=app, server='gunicorn',
        host='0.0.0.0', port=8888,
        debug=False, quiet=True,
        keyfile=args.sslkey, certfile=args.sslcrt)
我得到了
无法识别的参数
错误:

python3 ./tst.py --sslcrt ''
usage: tst.py [-h] [-v] [-c CONFIG] [-b ADDRESS] [--backlog INT] [-w INT]
              [-k STRING] [--threads INT] [--worker-connections INT]
              [--max-requests INT] [--max-requests-jitter INT] [-t INT]
              [--graceful-timeout INT] [--keep-alive INT]
              [--limit-request-line INT] [--limit-request-fields INT]
              [--limit-request-field_size INT] [--reload]
              [--reload-engine STRING] [--reload-extra-file FILES] [--spew]
              [--check-config] [--preload] [--no-sendfile] [--reuse-port]
              [--chdir CHDIR] [-D] [-e ENV] [-p FILE] [--worker-tmp-dir DIR]
              [-u USER] [-g GROUP] [-m INT] [--initgroups]
              [--forwarded-allow-ips STRING] [--access-logfile FILE]
              [--disable-redirect-access-to-syslog]
              [--access-logformat STRING] [--error-logfile FILE]
              [--log-level LEVEL] [--capture-output] [--logger-class STRING]
              [--log-config FILE] [--log-config-dict LOGCONFIG_DICT]
              [--log-syslog-to SYSLOG_ADDR] [--log-syslog]
              [--log-syslog-prefix SYSLOG_PREFIX]
              [--log-syslog-facility SYSLOG_FACILITY] [-R]
              [--statsd-host STATSD_ADDR] [--statsd-prefix STATSD_PREFIX]
              [-n STRING] [--pythonpath STRING] [--paste STRING]
              [--proxy-protocol] [--proxy-allow-from PROXY_ALLOW_IPS]
              [--keyfile FILE] [--certfile FILE] [--ssl-version SSL_VERSION]
              [--cert-reqs CERT_REQS] [--ca-certs FILE]
              [--suppress-ragged-eofs] [--do-handshake-on-connect]
              [--ciphers CIPHERS] [--paste-global CONF]
tst.py: error: unrecognized arguments: --sslcrt
如果我在没有任何参数的情况下运行同一个脚本,它就可以正常工作

目前我的解决方法是在调用
run()
之前重置
args

通过此解决方案,我的脚本可以按预期工作:

python3 ./tst.py --sslcrt ''
[2019-05-01 11:01:01 +0100] [29198] [INFO] Starting gunicorn 19.9.0
[2019-05-01 11:01:01 +0100] [29198] [INFO] Listening at: http://0.0.0.0:8888 (29198)
[2019-05-01 11:01:01 +0100] [29198] [INFO] Using worker: sync
[2019-05-01 11:01:01 +0100] [29239] [INFO] Booting worker with pid: 29239
有没有更明智的方法

python3 ./tst.py --sslcrt ''
[2019-05-01 11:01:01 +0100] [29198] [INFO] Starting gunicorn 19.9.0
[2019-05-01 11:01:01 +0100] [29198] [INFO] Listening at: http://0.0.0.0:8888 (29198)
[2019-05-01 11:01:01 +0100] [29198] [INFO] Using worker: sync
[2019-05-01 11:01:01 +0100] [29239] [INFO] Booting worker with pid: 29239