如何在Python中设置和检索环境变量

时间:2014-10-01 16:32:51

标签: python environment-variables

我需要在python中设置一个环境变量,然后尝试下面的命令

import os
basepath = os.putenv('CPATH','/Users/cat/doc') 
basepath = os.getenv('CPATH','/Users/cat/doc') 

当我打印varible时,它们没有设置:     打印基道     无

我做错了什么?

重新提出问题,我想基于环境变量创建一个基本路径。我正在测试这个:

os.environ["CPATH"] = "/Users/cat/doc"
print os.environ["CPATH"]
base_path=os.getenv('C_PATH')

当我尝试打印基道时:     打印基道 它总是回归 无

3 个答案:

答案 0 :(得分:8)

试试这个。

os.environ["CPATH"] = "/Users/cat/doc"

Python documentation非常清楚。

  

直接调用putenv()不会改变os.environ,所以最好修改os.environ。

根据文档,os.getenv()可用于大多数Unix和Windows版本。 OS X未列出。

使用下面的代码片段来检索值。

value = os.environ.get('CPATH')

答案 1 :(得分:2)

使用os.environ

os.environ['CPATH'] = '/Users/cat/doc'    
print os.environ['CPATH']     # /Users/cat/doc
print os.environ.get('CPATH') # /Users/cat/doc

有关详细信息,请参阅上面的link

  

如果平台支持putenv()函数,则此映射可能是   用于修改环境以及查询环境。   修改映射时将自动调用putenv()。

     

注意直接调用putenv()不会改变os.environ,所以就是这样   最好修改os.environ。

答案 2 :(得分:0)

在功能完成时恢复环境变量是一个很好的做法。 您可能需要modified_environ中描述的with modified_environ(CPATH='/Users/cat/doc'): call_my_function() 上下文管理器来恢复环境变量。

用法示例:

git fetch azure-qa master