uWSGI 优化选项
我在考虑在我的代码中添加一些assert
语句,并想要能够给uwsgi传递一个参数,以便在生产环境中关闭这些语句的评估。不过,我搞不清楚uwsgi中的optimize选项是如何与Python的-O命令行参数对应的。uWSGI的这个选项需要一个整数,但没有说明这个整数是怎么被解释或使用的,只是说“设置Python优化级别”。而Python的文档中提到整数时,只是和环境变量有关,并且只说一个整数相当于多个-O
参数(但我也没看到对这些参数的具体描述,虽然我猜可能类似于-OO
)。
所以,我应该把optimize
的值设置成多少才能简单地关闭assert语句?如果我还想去掉文档字符串,又该设置成什么?而设置为0(零)是默认值吗?
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的任何值时,我得到了一个None。