[英]env variables and logic in python code
I need to assign a different value to a variable if an env variable called 'MYPROJECT_PRODUCTION' is set to True.So ,I created the following code in which I created a module1 file for storing the production values 如果将名为“ MYPROJECT_PRODUCTION”的环境变量设置为True,则需要为变量分配一个不同的值。因此,我创建了以下代码,在其中创建了用于存储生产值的module1文件
The main code resides in mycode.py.Here is the directory structure 主要代码位于mycode.py。这是目录结构
mypythondir/
mycode.py
module1.py
mycode.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 module1.py
MYNAME='damon'
I opened a terminal (in ubuntu) Just to check I ran 我打开了一个终端(在ubuntu中)只是为了检查我是否已运行
mypythondir$echo $MYPROJECT_PRODUCTION
Empty output..So,no variable set yet. 空输出..因此,尚未设置变量。 Without setting the env variable ,ran mycode.py from mypythondir
不设置env变量,从mypythondir运行mycode.py
mypythondir$python mycode.py
mypythondir$myname= damon
I am confused,why is the value 'damon'.It should be 'denny' since there is no MYPROJECT_PRODUCTION set ,and there is no key 'MYPROJECT_PRODUCTION' in os.environ. 我很困惑,为什么值“ damon”。应该为“ denny”,因为没有设置MYPROJECT_PRODUCTION,并且在os.environ中没有键“ MYPROJECT_PRODUCTION”。
Then I set 然后我设定
mypythondir$export MYPROJECT_PRODUCTION=False
Again I ran the code and even now the result is the same..but this time the key MYPROJECT_PRODUCTION
is in os.environ
再次,我运行了代码,即使现在结果还是一样。.但这一次,密钥
MYPROJECT_PRODUCTION
在os.environ
What is happening here ? 这是怎么回事? Can someone please help me figure this out?
有人可以帮我解决这个问题吗?
Your default value is True
. 您的默认值为
True
。 And any non-empty value, including the string "False"
, is true. 并且任何非空值(包括字符串
"False"
)都是true。 Change the default value to something false, or omit it entirely. 将默认值更改为false,或完全省略它。
os.environ is just a mapping object. os.environ只是一个映射对象。 Did you try simply os.getenv()?
您是否尝试过简单地使用os.getenv()? See this link: http://docs.python.org/2/library/os.html#process-parameters
看到此链接: http : //docs.python.org/2/library/os.html#process-parameters
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.