Python os.environ在哪里初始化?

Python os.environ在哪里初始化?,python,initialization,std,Python,Initialization,Std,使用此代码可以输出许多键,但我不希望输出: import os for i in os.environ: print i 这是os.py中的代码: try: environ except NameError: environ = {} os.environ从何处获取其值?在何处初始化?os模块首先从平台特定子模块导入所有名称(例如\u nt或\u posix),然后执行一点规范化。显然,environ名称(代表系统环境)是由平台特定的子模块定义的(通常预期是!!!

使用此代码可以输出许多键,但我不希望输出:

import os

for i in os.environ:
    print  i
这是os.py中的代码:

try:
    environ
except NameError:
    environ = {}

os.environ从何处获取其值?在何处初始化?

os模块首先从平台特定子模块导入所有名称(例如
\u nt
\u posix
),然后执行一点规范化。显然,
environ
名称(代表系统环境)是由平台特定的子模块定义的(通常预期是!!!),因此,
os.py
中的
except
子句没有触发,
os.environ
只是它通常应该是的丰富字典。

引用的
os.py
中的代码是一个后盾。它的意思是,如果还没有人定义一个
environ
变量,那么创建一个,并使用一个空字典作为值

但是,
environ
确实存在,因为它是由第58行上的进一步导入的:

from nt import *
如果您运行的是Windows,以及针对其他平台的类似特定于平台的导入。因此在实践中,
environ
将始终存在,并且永远不会使用空的dict backstop


那为什么还要费心提供支持呢?好吧,它在现实世界中的用处令人怀疑,因为据我所知,目前由核心Python发行版支持的所有平台都实现了适当的
environ
查找。然而,可能存在或曾经存在一些不寻常的平台,Python运行时没有环境变量,在开发新平台时,如果还没有编写环境变量等系统接口,许多程序都无法运行,这一点可能很有用。

这个问题似乎很模糊。您可以添加更多关于您正在尝试做什么以及您遇到的问题的信息吗?您可以考虑包含您的回溯,而不是包含Python源代码的片段,这些代码很可能没有被破坏。