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

sot*_*ios 2 django debugging otree

我正在尝试以生产模式(调试 = false)从 Otree(基于 django 和 Python 的 Web 平台)运行 Web 应用程序。我找不到变量 OTREE_PRODUCTION 所在的位置。

小智 5

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

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

下面的步骤对于任何Otree相关环境变量的工作,比如AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYOTREE_AUTH_LEVEL,和OTREE_ADMIN_PASSWORD

在 Mac 上本地设置 OTREE_PRODUCTION:

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

vim ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

~/规定文件位于你的主目录。在该文件中,您将看到其他行,如下所示,指定在调用它时要运行的 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
Run Code Online (Sandbox Code Playgroud)

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

OTREE_PRODUCTION=1
export OTREE_PRODUCTION
Run Code Online (Sandbox Code Playgroud)

第一行将变量设置为 True,第二行将这个变量和值广播给任何可能使用它的人。更详细的答案在这里

为了实际广播出这些值,需要重新启动 shell。你可以通过运行来做到这一点source ~/.bash_profile

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

echo $OTREE_PRODUCTION
Run Code Online (Sandbox Code Playgroud)

$指出的东西来“呼应”是一个变量。没有它,它只会返回相同的文本。

在 Heroku 上设置 OTREE_PRODUCTION=1:

您甚至可能不需要或不想在本地执行此操作,因为您只需告诉 Heroku 在生产模式下运行,而本地版本仍处于调试状态。假设您都已在 Heroku 上进行设置,您可以运行以下命令。通过这一行,您可以在生产服务器上的调试 ( OTREE_PRODUCTION=0) 和生产 ( OTREE_PRODUCTION=1)之间来回切换。

heroku config:set OTREE_PRODUCTION=1
Run Code Online (Sandbox Code Playgroud)

然后,您可以查看所有环境变量

heroku config
Run Code Online (Sandbox Code Playgroud)