博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django os.environ慎用setdefault操作环境变量!
阅读量:4882 次
发布时间:2019-06-11

本文共 1066 字,大约阅读时间需要 3 分钟。

在绝大多数情况下,如果需要在程序运行过程中设置环境变量,使用os.environ.setdefault函数是没有任何问题的,但是有两种场景下setdefault会造成意外的问题,需要慎用:如果程序执行前,系统里已经存在了某环境变量(如ENV=VAL1),此时如果在程序中用setdefault函数对该环境变量设置另一个不同的值(如VAL2),会因为setdefault函数的特性导致无法设置为新值也是因为上述这一点,如果进程A先设置了环境变量(如ENV=VAL1),而A启动了子进程B,子进程B会继承A进程的所有与环境变量,会导致B运行的时候,程序运行环境里已经存在环境变量ENV,导致如果此时用setdefault函数对该环境变量设置另一个不同的值(如VAL2),也会因为同样的原因导致无法设置为新值因此,在程序运行中设置系统环境变量的最安全方法还是:os.environ['ENV'] = 'VAL'python 获取系统环境变量 os.environ and os.putenv从一段code说起 “if "BATCH_CONFIG_INI" in os.environ:” 判断环境变量的值有没有定义如果定义的话就去环境变量的值,否则就取当前目录下的config.ini文件。复制代码1         if "BATCH_CONFIG_INI" in os.environ:2             print "Using custom ini file!"3             self.inifile = os.environ["BATCH_CONFIG_INI"]4         else:5             self.inifile = self.cur_file_dir() + "/config.ini"6         self.db_print ("inifile = (%s)" %(self.inifile))复制代码 用Python Shell设置或获取环境变量的方法:一、设置系统环境变量1、os.environ['环境变量名称']='环境变量值' #其中key和value均为string类型2、os.putenv('环境变量名称', '环境变量值') 二、获取系统环境变量1、os.environ['环境变量名称']2、os.getenv('环境变量名称')

 

转载于:https://www.cnblogs.com/yanxiatingyu/p/9543018.html

你可能感兴趣的文章
第二章例2-2
查看>>
Java8——快速入门手册(学习笔记)
查看>>
p2p-如何拯救k8s镜像分发的阿喀琉斯之踵
查看>>
linux之多进程
查看>>
iphone设置铃声
查看>>
python基础
查看>>
HDU 3277 最大流+二分
查看>>
Angular 学习笔记 :初识 $digest , $watch , $apply,浅析用法 。
查看>>
自动化测试优缺点思考
查看>>
通过实例理解委托、lambda的演变
查看>>
javascript中数据类型转换
查看>>
ubuntu14安装node0.12.7
查看>>
JDBC的使用和SQL注入问题
查看>>
Sublime插件WakaTime使用
查看>>
vue-cli笔记
查看>>
xml转义字符在mybatis动态sql中的使用
查看>>
redis为什么设计成单线程并且还这么快?
查看>>
Lesson 45-46 Kids
查看>>
CocoaPods 1.0之前版本无法pod install和pod update! 更新后CocoaPods 1.1.1 Podfile新的写法....
查看>>
Java复习第一天——数组存储位置
查看>>