在配置文件中设置environment=
参数时, %
符号会返回Error: Format string 'KEY="%"' for 'environment' is badly formatted
错误。
例如
好的: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wkyi"
破损: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"
破损: environment=FOO="%"
破损: environment=FOO="\%"
破损:
environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"
您应该能够使用%%
包含%
%%
。
Supervisor 在解析配置文件时使用 Python 字符串插值,因此您可以像这样测试它:
$ 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
使用%%
:
>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%%i" % {}
'*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i'
你好,
我在[supervisord]
块内的environment=
参数中遇到了类似的配置问题。
我有一个带有%
符号的参数。 我尝试了建议的解决方案(使用 2 个%
符号),但我无法解决问题。
要尝试的示例字符串: x1it3km%2BTVmkRsQ
此字符串出现以下错误
错误:'supervisord.environment' 的格式字符串 'SECRET="x1it3km%2BTVmkRsQ"' 格式错误:不支持的格式字符 'B'
我认为这与%
符号后面的数字有关,但我不确定。
有任何想法吗?
@chinmaybhoir是这样的......它认为 %2 就像一个特殊的字符或类似的东西......在我的 cas 我在 Django 所以我只是删除了键中的每个 % 并且它工作正常
如果主管可以自动转义字符串中的%
s(例如, %(ENV_SECRET_KEY)
当前扩展为x1it3km%2BTVmkRsQ
,这是无效的,但我希望它扩展到x1it3km%%2BTVmkRsQ
。这样,我就不必为了让主管高兴而更改我的 Django 密钥。
最有用的评论
您应该能够使用
%%
包含%
%%
。Supervisor 在解析配置文件时使用 Python 字符串插值,因此您可以像这样测试它:
使用
%%
: