如何在oTree中关闭调试模式?

时间:2016-01-20 20:00:01

标签: django debugging otree

我试图在生产模式下运行来自Otree(基于django和Python的Web平台)的Web应用程序(debug = false)。我无法找到变量OTREE_PRODUCTION所在的位置。

2 个答案:

答案 0 :(得分:3)

OTREE_PRODUCTION变量是一个系统环境变量,意味着它的范围大于您的Otree项目。因此,设置起来更复杂。下面介绍了如何为Mac或其他UNIX系统执行此操作。

您可以按照之前的回答建议反转条件,但如果您确实想要实验并将其放在像Heroku这样的远程服务器上,那么这是不可取的。这是因为你可能需要实际调试,而你不想重新启动(在远程服务器上编译)就是这样做。如果正确使用环境变量,则可以避免此问题。

以下步骤适用于任何与Otree相关的环境变量,例如AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYOTREE_AUTH_LEVELOTREE_ADMIN_PASSWORD

在Mac上本地设置OTREE_PRODUCTION:

您需要做的就是修改.bash_profile文件。这告诉终端关于如何运行它的一般事项。它位于您的主目录中并被隐藏,因此是名称中的前导期。使用您选择的文本编辑器,打开文件。

vim ~/.bash_profile

~/指定该文件位于您的主目录中。在文件内部,您将看到其他行,如下所示,指定调用时要运行的python版本。不要改变这些。

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

您需要做的就是在下面添加两行并保存文件。

OTREE_PRODUCTION=1
export OTREE_PRODUCTION

第一行将变量设置为True,第二行将此变量和值广播到可能使用它的任何内容。更详细的answer is here

对于要实际广播的值,需要重新启动shell。您可以通过运行source ~/.bash_profile

来实现

现在,您可以通过运行以下命令来检查变量的值。

echo $OTREE_PRODUCTION

$表示要回复""是一个变量。没有它,它只返回相同的文本。

在Heroku上设置OTREE_PRODUCTION = 1:

您可能甚至不需要或想要在本地执行此操作,因为您可以告诉Heroku在生产模式下运行,而本地版本保持在调试状态。假设您是all set up on Heroku,则可以运行以下命令。使用这一行,您可以在生产服务器上的调试(OTREE_PRODUCTION=0)和生产(OTREE_PRODUCTION=1)之间来回切换。

heroku config:set OTREE_PRODUCTION=1

然后,您可以使用

查看所有环境变量
heroku config

答案 1 :(得分:0)

有一种方法,不记得它,但你可以扭转条件: 在settings.py中: 转:

如果environ.get('OTREE_PRODUCTION')不在{None,'','0'}中:     DEBUG = False 其他:     DEBUG = True

为:

如果environ.get('OTREE_PRODUCTION')不在{None,'','0'}中:     DEBUG = True 其他:     DEBUG = False