我正在尝试在我的python代码中读取环境变量。但是,它无法做到。下面是我正在运行的代码。
#!/usr/bin/env python
import os
for key, value in os.environ.items(): print key,"\t", value
print os.environ["DUMBOLIB"]
我得到的错误:
Traceback (most recent call last):
File "/Users/debpriyas/CAD/PythonWork/HelloWorld/HelloWorld.py", line 4, in <module>
print os.environ["DUMBOLIB"]
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/UserDict.py", line 23, in __getitem__
raise KeyError(key)
KeyError: 'DUMBOLIB'
当我查看for循环时,很明显os.environ没有我在.bashrc中定义的任何环境变量。 但是,当我从命令行执行相同的文件时,它可以工作,甚至可以在IDLE中工作。我在命令提示符中回显了变量,我确实看到了值。 注意:我也有〜/ .bash_profile,我称之为.bashrc:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
操作系统:Mac Maverick 10.9,
IDE:Eclipse Juno Service Release 2,
PyDev 3.7.1.2
有人可以告诉我这里做错了什么。如果有人已经问过这个问题,请道歉。
答案 0 :(得分:0)
环境变量总是从父进程继承,因此,解决方法是启动一个shell(它将加载你的bashrc),然后从那个bash会话启动Eclipse。
另一个选择是将变量定义为系统范围(而不是在bashrc中定义)或在python解释器配置中重新定义它们(在pydev内部)。