2017-10-18 10 views
3

我有一個Python腳本需要知道$ UID環境變量的值。問題是,由於某種原因,這個變量在os.environ中不存在。UID env-var沒有複製到Python的'os.environ'字典

下面是一個交互式演示 - $ UID在shell中定義,但雖然Python是從同一個shell啓動的,但'UID'環境變量不存在於os.environ中。

這是一個已知的問題嗎?有什麼要做的嗎?

$ 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' 
>>> 

回答

3

這是預期的,因爲UIDshell internal variable。它不會傳播到子進程。

你必須通過os模塊os.getuid()