文章目录
1. 背景介绍
什么是环境变量,环境变量是程序和操作系统之间的通信方式。有些字符不宜明文写进代码里,比如数据库密码,个人账户密码,如果写进自己本机的环境变量里,程序用的时候通过os.environ.get()取出来就行了。这样开发人员本机测试的时候用的是自己本机的一套密码,生产环境部署的时候,用的是公司的公共账号和密码,这样就能增加安全性。os.environ是一个字典,是环境变量的字典。"PALM_JS_ADDRESS"是这个字典里的一个键,如果有这个键,返回对应的值,如果没有,则返回none
从一段code说起 “if “BATCH_CONFIG_INI” in os.environ:” 判断环境变量的值有没有定义。
如果定义的话就去环境变量的值,否则就取当前目录下的config.ini文件。
if "BATCH_CONFIG_INI" in os.environ:
print "Using custom ini file!"
self.inifile = os.environ["BATCH_CONFIG_INI"]
else:
self.inifile = self.cur_file_dir() + "/config.ini"
self.db_print ("inifile = (%s)" %(self.inifile))
用Python Shell设置或获取环境变量的方法:
-
设置系统环境变量
os.environ[‘环境变量名称’]=‘环境变量值’ #其中key和value均为string类型
os.putenv(‘环境变量名称’, ‘环境变量值’) -
获取系统环境变量
os.environ[‘环境变量名称’]
os.getenv(‘环境变量名称’)
2. python|os.environ代码
>>> import os
>>> os.environ.keys()
['LC_NUMERIC', 'GOPATH', 'GOROOT', 'GOBIN', 'LESSOPEN', 'SSH_CLIENT', 'LOGNAME', 'USER', 'HOME', 'LC_PAPER', 'PATH', 'DISPLAY', 'LANG', 'TERM', 'SHELL', 'J2REDIR', 'LC_MONETARY', 'QT_QPA_PLATFORMTHEME', 'JAVA_HOME', 'SHLVL', 'XDG_RUNTIME_DIR', 'LC_ADDRESS', 'COMP_WORDBREAKS', 'J2SDKDIR', 'XDG_DATA_DIRS', 'XDG_SESSION_ID', '_', 'LC_IDENTIFICATION', 'DERBY_HOME', 'SSH_CONNECTION', 'LESSCLOSE', 'SSH_TTY', 'LC_TELEPHONE', 'LC_MEASUREMENT', 'PWD', 'LC_NAME', 'MAIL', 'LC_TIME', 'LS_COLORS']
#访问
>>> os.environ.get('PWD')
'/home/gsadmin'
>>> os.environ['PWD']
'/home/gsadmin'
# 设置
>>> os.environ.setdefault('ASID', "sadasd")
'sadasd'
>>> os.environ.keys()
['LC_NUMERIC', 'ASID', 'GOPATH', 'GOROOT', 'GOBIN', 'LESSOPEN', 'SSH_CLIENT', 'LOGNAME', 'USER', 'HOME', 'LC_PAPER', 'PATH', 'DISPLAY', 'LANG', 'TERM', 'SHELL', 'J2REDIR', 'LC_MONETARY', 'QT_QPA_PLATFORMTHEME', 'JAVA_HOME', 'SHLVL', 'XDG_RUNTIME_DIR', 'LC_ADDRESS', 'COMP_WORDBREAKS', 'J2SDKDIR', 'XDG_DATA_DIRS', 'XDG_SESSION_ID', '_', 'LC_IDENTIFICATION', 'DERBY_HOME', 'SSH_CONNECTION', 'LESSCLOSE', 'SSH_TTY', 'LC_TELEPHONE', 'LC_MEASUREMENT', 'PWD', 'LC_NAME', 'MAIL', 'LC_TIME', 'LS_COLORS']
>>> os.environ.get("ASID")
'sadasd'
# 设置一个临时的变量
>>> os.environ.get("Aasdasd", "asdsad")
'asdsad'
>>> os.environ.get("Aasdasd", "[sadsdsad]")
'[sadsdsad]'
# 修改
os.environ["PWD"] = "test"
# 删除
>>> del(os.environ["ASID"])
>>> os.environ.keys()
['LC_NUMERIC', 'GOPATH', 'GOROOT', 'GOBIN', 'LESSOPEN', 'SSH_CLIENT', 'LOGNAME', 'USER', 'HOME', 'LC_PAPER', 'PATH', 'DISPLAY', 'LANG', 'TERM', 'SHELL', 'J2REDIR', 'LC_MONETARY', 'QT_QPA_PLATFORMTHEME', 'JAVA_HOME', 'SHLVL', 'XDG_RUNTIME_DIR', 'LC_ADDRESS', 'COMP_WORDBREAKS', 'J2SDKDIR', 'XDG_DATA_DIRS', 'XDG_SESSION_ID', '_', 'LC_IDENTIFICATION', 'DERBY_HOME', 'SSH_CONNECTION', 'LESSCLOSE', 'SSH_TTY', 'LC_TELEPHONE', 'LC_MEASUREMENT', 'PWD', 'LC_NAME', 'MAIL', 'LC_TIME', 'LS_COLORS']
3. 添加环境变量的其他方式:
1. “系统设置”——“环境变量”
windows下,在“系统设置”——“环境变量”——“用户变量”下,点击“新建” 添加进去就行了
2. pycharm中设置环境变量
在pycharm中,设置环境变量,点击pycharm右上角的“Edit Configuration”,如下图,然后点击environment variables末端的一个文件夹图标,进入第二个对话框,点击加号新增就行了
3. cmd添加环境变量方法
cmd中有set命令可以查看所有的环境变量
- 临时增加环境变量
set user = admin
set password = 123456
注意:这种方法只是临时添加环境变量,当前的cmd窗口关闭之后,再次打开cmd,运行set命令,他们就不存在了。
- 永久添加环境变量
setx user admin /m
setx password 123456 /m
成功了。但是这里还有一点要注意哦,如果你在当前cmd中用set查看环境变量,user与password是没有的哦,需要你关闭当前cmd,重新打开cmd,用set查看才会出现。
如果在增加环境变量时你的pycharm是打开的,你需要重新打开pycharm,等待IDE的updating。