Python:并非所有环境变量都存在于os.environ中

时间:2016-07-26 06:35:03

标签: python environment

在python shell中,使用

import os 
print os.environ 

打印完整的环境变量列表,没有任何遗漏。但是当我用文件名调用解释器时:

sudo python file.py 

并使用

import os 
print os.environ 

我看到dict中缺少一些环境变量。

他们为什么表现不一样?

操作系统:Ubuntu 14.04

3 个答案:

答案 0 :(得分:1)

我意识到差异是因为我在第二次执行期间使用sudo而没有保留环境。我需要补充一下 那些环境变量到我的sudoers文件或在执行期间保留它们。

答案 1 :(得分:1)

我看到这种情况发生在使用bash中的 export 设置 not 而不设置ENV Vars的时候,因此它们没有传播到python脚本。

答案 2 :(得分:0)

您是否尝试使用 export 关键字,例如

export DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"