用Python Shell设置或获取环境变量的方法:os.environ and os.putenv in Python

背景

简单来说是整个工程有一个启动文件,需要用一个const.py文件中的参数来控制运行环境,这在Pycharm这些IDE里面运行当然没问题,因为编译器的运行环境是一个虚拟的env。我在Jenkins的机器上运行时,无法通过单独的case.py文件修改const.py文件的值,使用global变量也不行,故采用设置环境变量的方法。

实施

设置系统环境变量

  • os.environ['环境变量名称']='环境变量值' #其中key和value均为string类型
    
  • os.putenv('环境变量名称', '环境变量值')
    

获取系统环境变量

  • os.environ['环境变量名称']
    
  • os.getenv('环境变量名称')
    

踩坑

以上方法,推荐用os.environ,因为使用os.putenv()并不会真正改变os.environ字典里面的环境变量,即某些平台无效(比如MacOS,我就是在这里一直设置不成功),但是使用os.environ有一个潜在的隐患:在一些平台上,包括FreeBSD和Mac OS X,修改environ会导致内存泄露。详情见Python API。

我们设置的环境变量只存在于当前的python shell中(设置成功后用print os.environ['环境变量名称']或printos.getenv('环境变量名称') 查看)。也就是说,比如Windows环境下,在"我的电脑"——“属性”——“高级系统设置”——"高级"——"环境变量"中找不到刚才设置成功的环境变量。为什么会这样呢,如何用Python真正设置环境变量?

如果你所在的开发环境是windows的操作系统,import _winreg模块将环境变量写入注册表,再广播WM_SETTINGCHANGE消息,可参考实例;如果你所在的开发环境是Linux的操作系统,使用linux命令,在bash_profile文件中添加环境变量后,使其生效即可。

参考文章

os.environ and os.putenv in Python

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,236评论 4 16
  • pyton review 学习指南 https://www.zhihu.com/question/29138020...
    孙小二wuk阅读 1,064评论 0 2
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,025评论 17 410
  • 老师说到把孩子送到国外教育 有的石大老师把孩子送到国外去培养语感,但是很贵。其实从某种意义上而言,我们就已经落后在...
    橙以汁阅读 347评论 0 0
  • 现在慢慢儿有点想明白了。 这人呐,不管你怎么想,怎么样的费尽心机、处心积虑去抓这个青春的尾巴,永远也抓不住,永远办...
    一叶茶阅读 279评论 0 2