os.environ与PyDev Eclipse的KeyError,在IDLE和从命令提示符运行时运行良好

时间:2014-09-24 19:54:51

标签: eclipse-plugin pydev

我正在尝试在我的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

有人可以告诉我这里做错了什么。如果有人已经问过这个问题,请道歉。

1 个答案:

答案 0 :(得分:0)

环境变量总是从父进程继承,因此,解决方法是启动一个shell(它将加载你的bashrc),然后从那个bash会话启动Eclipse。

另一个选择是将变量定义为系统范围(而不是在bashrc中定义)或在python解释器配置中重新定义它们(在pydev内部)。