【问题标题】:What sets the __debug__ variable in a production Django / WSGI based site?在基于 Django / WSGI 的生产站点中设置 __debug__ 变量是什么?
【发布时间】:2011-06-29 02:18:39
【问题描述】:

python 文档定义了一个名为 __debug__ 的全局常量:

__debug__

如果 Python 没有使用 -O 选项启动,则此常量为真。另见 assert 语句。

我在我的生产 Django 站点(基于 Apache/WSGI)下使用了一些 python 库,它在执行仅调试代码之前检查此常量。令我惊讶的是,该代码正在生产中执行。

由于 Django 站点不是通过 python 命令行解释器启动的,我想知道是什么控制了这个 __deubg__ 常量?

【问题讨论】:

    标签: django debugging settings


    【解决方案1】:

    为了所有关注的人,这是您正在寻找的 wsgi 指令:WSGIPythonOptimize

    文档说明:

    The default is '0' which means no optimisations are applied.
    

    所以在默认情况下__debug__ 将是True

    【讨论】:

      【解决方案2】:

      settings.DEBUG 是否设置为 False

      【讨论】:

      • 是的。好像没什么效果。
      【解决方案3】:

      看起来您可以使用PYTHONOPTIMIZE 环境变量。您可能需要从您的 apache 配置中进行设置...不太确定我已经很久没有使用标准的 WSGI 设置了。

      【讨论】:

      • 谢谢,这也帮助我解决了我的问题。我所要做的就是在运行“manage.py runserver”之前“导出 PYTHONOPTIMIZE=1”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-02
      • 1970-01-01
      • 2014-04-12
      • 2013-01-04
      相关资源
      最近更新 更多