什么是环境变量,环境变量是程序和操作系统之间的通信方式。有些字符不宜明文写进代码里,比如数据库密码,个人账户密码,如果写进自己本机的环境变量里,程序用的时候通过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(‘环境变量名称’)
>>> 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']
windows下,在“系统设置”——“环境变量”——“用户变量”下,点击“新建” 添加进去就行了
在pycharm中,设置环境变量,点击pycharm右上角的“Edit Configuration”,如下图,然后点击environment variables末端的一个文件夹图标,进入第二个对话框,点击加号新增就行了
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。