os.environ不显示一些variables

我有一个使用profile.d设置的环境variables(在Centos 6上),如下所示:

[bankap@tnt-integration-test ~]$ cat /etc/profile.d/tnt.sh TNT_SERVER_URL=http://tnt-integration-test:8000/ 

当我login时,我看到variables:

 [bankap@tnt-integration-test ~]$ echo $TNT_SERVER_URL http://tnt-integration-test:8000/ 

但是当我用Python访问这个东西的时候,环境variables没有显示出来!

 [bankap@tnt-integration-test ~]$ python -c 'import os;os.environ.get("TNT_SERVER_URL")' Traceback (most recent call last): File "<string>", line 1, in <module> NameError: name 'TNT_SERVER_URL' is not defined 

我甚至尝试使用ctypes库的结果相同:

 >>> os.getenv('TNT_SERVER_URL') >>> from ctypes import CDLL, c_char_p >>> getenv = CDLL('libc.so.6').getenv >>> getenv('TNT_SERVER_URL') 0 >>> 

但其他variables通过罚款…

os.environ {'SSH_ASKPASS':'/ usr / libexec / openssh / gnome-ssh-askpass','LESSOPEN':'| /usr/bin/lesspipe.sh%s','SSH_CLIENT':'139.126.176.137 56535 22','SELINUX_USE_CURRENT_RANGE':'','LOGNAME':'bankap','USER':'bankap','QTDIR':'/usr/lib64/qt-3.3','PATH':'/ usr / lib64 /qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/bankap/bin',

任何人有任何想法? 我从来没有见过这个!

你有一个引用问题:

更改

 python -c 'import os;os.environ.get('TNT_SERVER_URL')' 

 python -c 'import os;os.environ.get("TNT_SERVER_URL")' ^ ^ 

你也(可能)需要export变量:

 export TNT_SERVER_URL; python -c 'import os;os.environ.get("TNT_SERVER_URL")'