浅谈Python中的os.environ:环境变量交互机制
什么是 os.environ
?
os.environ
是 Python 提供的一个 “环境变量字典”,它包含了当前操作系统环境变量的全部信息。
- 由 Python 的
os
模块 提供。 - 本质上是一个特殊的 字典(os._Environ 对象),键是环境变量名称,值是对应的字符串。
1. 我们可以把 os.environ 理解为:
“当前 Python 进程启动时,继承自操作系统环境变量的映射表”。
当我们在 Python 中访问:
import os
print(os.environ['PATH'])
获取到的就是 系统环境变量 PATH 的值。
2. 常见用法示例
访问环境变量:
import osprint(os.environ['PATH']) # 访问 PATH 环境变量
print(os.environ.get('PYTHONPATH')) # 安全访问,若没有返回 None
设置/修改环境变量(仅当前进程有效):
os.environ['MY_VAR'] = 'HelloWorld'
print(os.environ['MY_VAR']) # HelloWorld
删除某个环境变量(仅当前进程有效):
del os.environ['MY_VAR']
遍历所有环境变量:
for key, value in os.environ.items():print(f"{key} = {value}")
3. os.environ 的特性
特性 | 说明 |
---|---|
表现为字典类型 (os._Environ) | 类似普通dict,但是受操作系统影响的特殊对象 |
只影响当前Python进程 | 我们通过 os.environ 修改的环境变量,不会影响系统/终端/其他程序 |
启动时从系统环境变量中继承 | Python 启动时,会读取操作系统环境变量,填充 os.environ |
不会写入到系统永久环境变量 | 想要永久生效需要到操作系统环境变量中配置(如Windows环境变量配置界面) |
4. os.environ 修改只对当前进程有效
例如:
import osos.environ['MY_VAR'] = 'Python'
print(os.environ['MY_VAR']) # Python# 关闭Python后再运行 CMD: echo %MY_VAR% -> 没有这个变量
- 我们用 os.environ 设置的变量只存在于当前Python进程的内存空间。
- 不会反向修改操作系统全局的环境变量。
5. PYTHONPATH 与 os.environ 的关系
-
当我们设置了 系统环境变量 PYTHONPATH,Python 启动时会自动将其加入
os.environ['PYTHONPATH']
。 -
我们也可以在Python代码里动态设置 PYTHONPATH:
os.environ['PYTHONPATH'] = '/my/custom/path'
但这只影响当前Python进程的 sys.path 初始化,并不会改变系统环境变量。
6. 总结一句话
os.environ 就是Python程序用来“读取与操作环境变量”的窗口。它是Python对操作系统环境变量的一个实时映射(当前进程范围内)。