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



我有一个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'
>>> 
这是

意料之中的,因为UID是一个shell内部变量。它不会传播到子进程。

您必须直接通过os模块获取值,并os.getuid()

我想你正在寻找os.getuid()

最新更新