Beim Festlegen des Parameters environment=
in einer Konfigurationsdatei gibt das Zeichen %
einen Error: Format string 'KEY="%"' for 'environment' is badly formatted
Fehler zurück.
z.B
Okay: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wkyi"
Defekt: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"
Defekt: environment=FOO="%"
Defekt: environment=FOO="\%"
Defekt:
environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"
Sie sollten in der Lage sein, ein %
einzufügen, indem Sie %%
.
Supervisor verwendet beim Parsen der Konfigurationsdatei Python-String-Interpolation, sodass Sie sie wie folgt testen können:
$ 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
Mit %%
:
>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%%i" % {}
'*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i'
Hi,
Ich stand vor einem ähnliches Problem mit config in environment=
Parametern innerhalb [supervisord]
Block.
Ich habe einen Parameter mit dem Zeichen %
. Ich habe die vorgeschlagene Lösung ausprobiert (mit 2 %
Zeichen), aber ich konnte das Problem nicht lösen.
Die Beispielzeichenfolge zum Ausprobieren: x1it3km%2BTVmkRsQ
Erhalten folgenden Fehler für diese Zeichenfolge
Fehler: Formatstring 'SECRET="x1it3km%2BTVmkRsQ"' für 'supervisord.environment' ist falsch formatiert: nicht unterstütztes Formatzeichen 'B'
Ich denke, das hat etwas mit einer Zahl zu tun, die dem Zeichen %
folgt, aber ich bin mir nicht sicher.
Irgendwelche Ideen?
@chinmaybhoir es ist der Fall ... es betrachtet %2 als ein spezielles Zeichen oder so .... In meinem Fall war ich auf Django, also entferne ich einfach jedes % im Schlüssel und es hat gut funktioniert
Es wäre erstaunlich, wenn Supervisor %
s in Strings automatisch maskieren könnte (z. B. wird %(ENV_SECRET_KEY)
derzeit zu x1it3km%2BTVmkRsQ
, was ungültig ist, aber ich möchte, dass es erweitert wird auf x1it3km%%2BTVmkRsQ
.Auf diese Weise müsste ich meinen geheimen Django-Schlüssel nicht ändern, um den Supervisor glücklich zu machen.
Hilfreichster Kommentar
Sie sollten in der Lage sein, ein
%
einzufügen, indem Sie%%
.Supervisor verwendet beim Parsen der Konfigurationsdatei Python-String-Interpolation, sodass Sie sie wie folgt testen können:
Mit
%%
: