Supervisor: “环境”配置选项即使在引用时也不接受“%”字符

创建于 2013-09-27  ·  4评论  ·  资料来源: Supervisor/supervisor

在配置文件中设置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

最有用的评论

破损: 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'

所有4条评论

破损: 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 密钥。

此页面是否有帮助?
0 / 5 - 0 等级