当前位置:  开发笔记 > 编程语言 > 正文

os.environ没有显示一些变量

如何解决《os.environ没有显示一些变量》经验,为你挑选了1个好方法。

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

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

当我登录时,我看到变量:

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

但是当我使用Python访问该东西时,环境变量不会显示出来!

[bankap@tnt-integration-test ~]$ python -c 'import os;os.environ.get("TNT_SERVER_URL")'
Traceback (most recent call last):
  File "", line 1, in 
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
>>>

但其他变量恰好通过......

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

有人有什么想法吗?我以前从未见过这个!



1> SingleNegati..:

你有一个引用问题:

更改

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")'

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有