os.environ KeyError与PyDev Eclipse配合使用,在IDLE和从命令提示符运行时工作良好



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

有人能告诉我我在这里做错了什么吗。如果有人已经问过这个问题,我们深表歉意。

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

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

相关内容

最新更新