2016-01-20 31 views

回答

2

OTREE_PRODUCTION變量是一個系統環境變量,這意味着它的範圍大於您的Otree項目。因此,設置起來會更復雜。以下是如何爲Mac或其他UNIX系統執行此操作的說明。

您可以按照上一個答案的建議反轉條件,但是如果您確實想要將實驗直接放到像Heroku這樣的遠程服務器上,那麼這是不可取的。這是因爲您可能需要進行真正的調試,而您不想重新啓動(在遠程服務器上進行編譯),只需執行此操作即可。如果正確使用環境變量,則可避免此問題。

以下步驟適用於任何與Otree相關的環境變量,如AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,OTREE_AUTH_LEVELOTREE_ADMIN_PASSWORD

在Mac上設置OTREE_PRODUCTION本地:

所有你需要做的就是修改.bash_profile文件。這告訴你的終端一般事情如何運行它。它位於您的主目錄並且被隱藏,因此名稱中處於領先階段。使用您選擇的文本編輯器,打開文件。

vim ~/.bash_profile 

~/指定該文件位於您的主目錄中。在文件內部,您會看到其他行,如下面的行,用於指定在您調用Python時運行哪個版本的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 
0

有一個辦法,不記得了,但你可以逆轉的條件: 在settings.py: 轉:

如果environ.get( 'OTREE_PRODUCTION')不是{無 '' , '0'}: DEBUG =假 否則: DEBUG =真

到:

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