2

我正在考虑在assert我的代码中添加一些语句,并希望能够将参数传递给 uwsgi 以便能够在生产中关闭评估这些语句。我似乎无法弄清楚uwsgi 中的优化选项如何映射到python 的 -O 命令行值。uWSGI 的选项接受一个整数,但除了说“设置 python 优化级别”之外,没有说明它如何解释或使用该整数。但是,python 文档从不提及整数,除非与环境变量有关,并且只有整数等效于多个-O参数(我也看不到任何关于它的作用的描述,尽管我怀疑它可能会做类似的事情-OO

那么,我应该将optimize值设置为什么来简单地关闭断言语句,如果我还想删除文档字符串,它应该设置为什么?并将其设置为默认值 0(零)吗?

4

1 回答 1

4

我通过将其设置为零来测试它并且调试仍然打开,但将其设置为大于零的任何数字都会关闭调试。

我的代码看起来像这样

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    assert(not __debug__)
    return "Hello World"

我的电话看起来像这样

uwsgi --http 0.0.0.0:8000 --wsgi-file app.py -O 1

编辑我还在函数中添加了一个文档字符串,并将其添加到 app.py 文件的末尾

print "DOC STRING: %s" % application.__doc__

并使用 -O 设置为 1 和 2 进行测试,使用 1,我得到一个文档字符串,任何大于 1 的值我得到一个无。

于 2013-09-01T13:27:52.230 回答