UID env-var不会复制到Python的'os.environ'字典中

时间:2017-10-18 07:54:06

标签: python

我有一个Python脚本,需要知道$ UID环境变量的值。问题是,由于某种原因,os.environ中不存在此变量。

下面是一个交互式演示 - $ UID是在shell上定义的,但是虽然Python是从同一个shell启动的,但os.environ中不存在'UID'环境变量。

这是一个已知问题吗?它有什么关系吗?

$ echo $UID
1003
$ python
Python 2.7.6 (default, Oct 26 2016, 20:30:19) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['UID']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'UID'
>>> 

2 个答案:

答案 0 :(得分:3)

预期,因为UIDshell internal variable。它不会传播到子进程。

您必须使用os

直接通过os.getuid()模块获取值

答案 1 :(得分:1)

我认为你正在寻找os.getuid()