首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在oTree中关闭调试模式?

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

Stack Overflow用户
提问于 2016-01-20 20:00:00
回答 2查看 4.3K关注 0票数 2

我试图在生产模式下(调试= false)从Otree (基于django和Python的web平台)运行一个web应用程序。我找不到变量OTREE_PRODUCTION的位置。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-21 14:34:55

OTREE_PRODUCTION变量是一个系统环境变量,意味着它的作用域大于您的Otree项目。正因为如此,设置起来更加复杂。下面描述了如何在Mac或其他UNIX系统上这样做。

您可以像前面的答案那样逆转条件,但是如果您真的想要现场实验并将它放在像Heroku这样的远程服务器上,这是不可取的。这是因为您可能需要实际调试,并且您不希望仅仅为了这样做就重新启动(在远程服务器上编译)。如果正确使用环境变量,则可以避免此问题。

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

在Mac上本地设置OTREE_PRODUCTION:

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

代码语言:javascript
复制
vim ~/.bash_profile

~/指定文件位于主目录中。在文件中,您将看到其他行,如下面指定调用python时要运行哪个版本的行。别改变这些。

代码语言:javascript
复制
# 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

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

代码语言:javascript
复制
OTREE_PRODUCTION=1
export OTREE_PRODUCTION

第一行将变量设置为True,第二行广播该变量并将值输出到任何可能使用该变量的对象。一个更详细的答案在这里

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

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

代码语言:javascript
复制
echo $OTREE_PRODUCTION

$表示要“回显”的东西是一个变量。没有它,它只返回相同的文本。

在Heroku上设置OTREE_PRODUCTION=1:

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

代码语言:javascript
复制
heroku config:set OTREE_PRODUCTION=1

然后,您可以使用

代码语言:javascript
复制
heroku config
票数 5
EN

Stack Overflow用户

发布于 2016-02-15 00:28:56

有一种方法,不记得它,但你可以只是颠倒条件:在settings.py:转身:

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

至:

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34909382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档