[英]env variables and logic in python code
如果將名為“ MYPROJECT_PRODUCTION”的環境變量設置為True,則需要為變量分配一個不同的值。因此,我創建了以下代碼,在其中創建了用於存儲生產值的module1文件
主要代碼位於mycode.py。這是目錄結構
mypythondir/
mycode.py
module1.py
mycode.py
import os
if __name__=='__main__':
MYNAME='denny'
if os.environ.get('MYPROJECT_PRODUCTION',True):
from module1 import *
print 'myname=',MYNAME
module1.py
MYNAME='damon'
我打開了一個終端(在ubuntu中)只是為了檢查我是否已運行
mypythondir$echo $MYPROJECT_PRODUCTION
空輸出..因此,尚未設置變量。 不設置env變量,從mypythondir運行mycode.py
mypythondir$python mycode.py
mypythondir$myname= damon
我很困惑,為什么值“ damon”。應該為“ denny”,因為沒有設置MYPROJECT_PRODUCTION,並且在os.environ中沒有鍵“ MYPROJECT_PRODUCTION”。
然后我設定
mypythondir$export MYPROJECT_PRODUCTION=False
再次,我運行了代碼,即使現在結果還是一樣。.但這一次,密鑰MYPROJECT_PRODUCTION
在os.environ
這是怎么回事? 有人可以幫我解決這個問題嗎?
您的默認值為True
。 並且任何非空值(包括字符串"False"
)都是true。 將默認值更改為false,或完全省略它。
os.environ只是一個映射對象。 您是否嘗試過簡單地使用os.getenv()? 看到此鏈接: http : //docs.python.org/2/library/os.html#process-parameters
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.