在 Tornado 中两次定义相同的选项

Define the same option twice in Tornado

Tornado 中我想使用基础 settings.py 文件,导入 prod_settings.pylocal_settings.py.

因此,该模块中的选项可以相互重复。例如,prod_settings中的DEBUG=Falselocal_settings中的DEBUG=True

但是我有一个错误

tornado.options.Error: Option 'DEBUG' already defined.

据我所知,我不能定义相同的选项两次。

为什么?如何做到这一点?

谢谢!

您不能多次定义一个选项。您可以在 prod_settings.pylocal_settings.py 中设置变量 DEFAULT_DEBUG,然后在 settings.py 中调用 define('DEBUG', default=DEFAULT_DEBUG) 时将其用作默认值。

但是这个问题表明你正在以错误的方式处理事情。在 tornado.options 中,预期的模式是在您的代码中定义一次选项,然后值来自 外部 代码,通过命令行(或配置文件,但命令行更惯用)。因此,您不会有条件地导入 local_settings.pyprod_settings.py,而是有 run-local.shrun-prod.sh 来传递适当的标志。