unrecognized deploy python wsgi uwsgi

python - deploy - Pasa los parámetros de la línea de comandos al script uwsgi



uwsgi flask (3)

Podría usar un archivo .ini con la configuración pyargv que @roberto mencionó. Llamemos a nuestro archivo de configuración uwsgi.ini y utilicemos el contenido:

[uwsgi] wsgi-file=/path/to/test_uwsgi.py pyargv=human

Entonces vamos a crear una aplicación WGSI para probarlo:

import sys def application(env, start_response): start_response(''200 OK'', [(''Content-Type'',''text/html'')]) return [str.encode("Hello " + str(sys.argv[1]), ''utf-8'')]

Puede ver cómo cargar este archivo https://uwsgi-docs.readthedocs.io/en/latest/Configuration.html#loading-configuration-files :

uwsgi --ini /path/to/uwsgi.ini --http :8080

Luego, cuando hacemos un curl la aplicación, podemos ver que nuestro parámetro se repite:

$ curl http://localhost:8080 Hello human

Si está intentando pasar argumentos de estilo argparse a su aplicación WSGI, también funcionan bien en el .ini :

pyargv=-y /config.yml

Estoy tratando de pasar argumentos a una aplicación wsgi de ejemplo,

config_file = sys.argv[1] def application(env, start_response): start_response(''200 OK'', [(''Content-Type'',''text/html'')]) return [b"Hello World %s" % config_file]

Y correr:

uwsgi --http :9090 --wsgi-file test_uwsgi.py -???? config_file # argument for wsgi script

¿De alguna manera inteligente puedo lograrlo? No se pudo encontrar en los documentos uwsgi. Tal vez hay otra forma de proporcionar algunos parámetros a la aplicación wsgi? (las variables env están fuera de alcance)


Python Args:

--pyargv "foo bar"

sys.argv [''uwsgi'', ''foo'', ''bar'']

Opciones de uwsgi:

--set foo = bar

uwsgi.opt[''foo''] ''bar''


Terminé usando una variable env pero configurándola dentro de un script de inicio:

def start(uwsgi_conf, app_conf, logto): env = dict(os.environ) env[TG_CONFIG_ENV_NAME] = app_conf command = (''-c'', uwsgi_conf, ''--logto'', logto, ) os.execve(os.path.join(distutils.sysconfig.get_config_var(''prefix''),''bin'', ''uwsgi''), command, env)