当前位置: 首页 > news >正文

浅谈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对操作系统环境变量的一个实时映射(当前进程范围内)。

http://www.lryc.cn/news/609231.html

相关文章:

  • [硬件电路-141]:模拟电路 - 源电路,信号源与电源,能自己产生确定性波形的电路。
  • IO流-数据流
  • LLM的训练:RLHF及其替代方案
  • 2025年6月电子学会青少年软件编程(C语言)等级考试试卷(七级)
  • 当Windows远程桌面出现“身份验证错误。要求的函数不受支持”的问题
  • 电机结构设计与特性曲线分析:基于MATLAB和FEMM的仿真研究
  • 【软考中级网络工程师】知识点之 IS-IS 协议
  • AI Agent 重塑产业发展新格局
  • SpringAI的使用
  • 图像张量中的通道维度
  • 【C 学习】04.1-数字化基础
  • Spring Boot 整合 Minio 实现高效文件存储解决方案(本地和线上)
  • Monaco Editor 开发流程详解
  • Flutter Dart类的使用
  • Redisson高并发实战:守护Netty IO线程的关键指南
  • 一加Ace5无法连接ColorOS助手解决(安卓设备ADB模式无法连接)
  • 【MySQL】MySQL 中的数据排序是怎么实现的?
  • FreeRTOS源码分析三:列表数据结构
  • 深度学习-读写模型网络文件
  • 03.一键编译安装Redis脚本
  • 07.config 命令实现动态修改配置和慢查询
  • ThinkPHP8.x控制器和模型的使用方法
  • VUE-第二季-01
  • 【实习总结】Qt通过Qt Linguist(语言家)实现多语言支持
  • Python-初学openCV——图像预处理(六)
  • 机器学习之决策树(二)
  • solidworks打开step报【警告!可用的窗口资源极低】的解决方法
  • 《C 语言内存函数深度剖析:从原理到实战(memcpy/memmove/memset/memcmp 全解析)》
  • 使用ACK Serverless容器化部署大语言模型FastChat
  • 【十九、Javaweb-day19-Linux概述】