簡體   English   中英

python代碼中的env變量和邏輯

[英]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_PRODUCTIONos.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM