Django 在python优化模式下运行gunicorn

Django 在python优化模式下运行gunicorn,django,performance,gunicorn,Django,Performance,Gunicorn,所谓优化模式,我指的是没有断言,可能没有文档字符串,.pyo,而不是.pyc 简而言之,我有一个django项目以标准样式通过gunicorn(v18.0)运行(gunicorn'module.wsgi:application') 我一直无法在文档或在线其他地方找到参考资料。这很有效,尽管它不是特别优雅 python -O `which gunicorn` 'module.wsgi:application' 如果您真正了解自己在做什么,可以设置PYTHONOPTIMIZE环境变量 # e.g.

所谓优化模式,我指的是没有断言,可能没有文档字符串,
.pyo
,而不是
.pyc

简而言之,我有一个django项目以标准样式通过gunicorn(v18.0)运行(
gunicorn'module.wsgi:application'


我一直无法在文档或在线其他地方找到参考资料。

这很有效,尽管它不是特别优雅

python -O `which gunicorn` 'module.wsgi:application'

如果您真正了解自己在做什么,可以设置
PYTHONOPTIMIZE
环境变量

# e.g.
# same as -O
export PYTHONOPTIMIZE=1
# same as -OO
export PYTHONOPTIMIZE=2
参考:

蟒蛇优化

如果将其设置为非空字符串,则它是等效的 以指定-O选项。如果设置为整数,则相当于 多次指定-O

但通常你不应该这么做

Deestan提出的另一个问题“Python断言的最佳实践”非常棒:

断言应用于测试不应发生的条件

其目的是在程序状态损坏的情况下提前崩溃


django应用程序通常使用许多其他库。当发生关键事件时,这些库认为应用程序应该立即崩溃,它们会遵循上面的最佳实践并使用断言。你不想破坏它。

但通常你不应该这样做我不同意
assert
语句并不完全适用于生产,因为它们可能会被您无法控制的内容禁用。您不应该在生产环境中依赖它。从同一个问题中看到这个答案