Supervisor: La opción de configuración "environment" no acepta el carácter "%" incluso cuando se cita

Creado en 27 sept. 2013  ·  4Comentarios  ·  Fuente: Supervisor/supervisor

Al configurar el parámetro environment= en un archivo de configuración, el signo % devuelve un error Error: Format string 'KEY="%"' for 'environment' is badly formatted .

p.ej

Bien: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wkyi"

Roto: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"

Roto: environment=FOO="%"

Roto: environment=FOO="\%"

environment

Comentario más útil

Roto: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"

Debería poder incluir un % usando %% .

El supervisor usa la interpolación de cadenas de Python al analizar el archivo de configuración, por lo que puede probarlo así:

$ python
>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i" % {}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not dict

Con %% :

>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%%i" % {}
'*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i'

Todos 4 comentarios

Roto: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"

Debería poder incluir un % usando %% .

El supervisor usa la interpolación de cadenas de Python al analizar el archivo de configuración, por lo que puede probarlo así:

$ python
>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i" % {}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not dict

Con %% :

>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%%i" % {}
'*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i'

Hola,

Enfrenté un problema similar con la configuración en el parámetro environment= dentro del bloque [supervisord] .

Tengo un parámetro con el signo % . Probé la solución sugerida (usando 2 % signos), pero no he podido resolver el problema.

La cadena de muestra para probar: x1it3km%2BTVmkRsQ
Obteniendo el siguiente error para esta cadena

Error: la cadena de formato 'SECRET = "x1it3km% 2BTVmkRsQ"' para 'supervisord.environment' está mal formateada: carácter de formato no admitido 'B'

Creo que esto tiene algo que ver con un número que sigue al signo % , pero no estoy seguro.
¿Algunas ideas?

@chinmaybhoir es el caso ... considera% 2 como un carácter especial o algo así ... En mi caso, estaba en Django, así que eliminé cada% en la clave y funcionó bien

Sería asombroso si el supervisor pudiera escapar automáticamente % s en cadenas (por ejemplo, %(ENV_SECRET_KEY) actualmente se expande a x1it3km%2BTVmkRsQ , que no es válido, pero me gustaría que se expandiera a x1it3km%%2BTVmkRsQ . De esta manera, no tendría que cambiar mi clave secreta de Django para hacer feliz al supervisor.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

ymsaout picture ymsaout  ·  4Comentarios

kootenpv picture kootenpv  ·  3Comentarios

AlphaSRE picture AlphaSRE  ·  3Comentarios

alexmnv picture alexmnv  ·  3Comentarios

felipejfc picture felipejfc  ·  5Comentarios