★ 环境变量基本概念
-
环境变量定义
环境变量是操作系统中存储有关操作系统配置信息和应用程序运行环境的动态值的一种机制。环境变量的主要作用是为正在运行的进程提供配置信息,帮助程序找到所需的资源或者确定程序运行的方式。 在操作系统中,每个进程都有自己的环境变量集合。这些变量可以包含诸如路径、临时文件位置、语言设定、用户偏好设置等信息。程序可以通过读取环境变量来获取这些信息,从而适应不同的操作系统环境或用户设置。
-
作用
有些字符不宜明文写进代码里,比如数据库密码,个人账户密码,如果写进自己本机的环境变量里,程序用的时候通过 os.environ.get() 取出来就行了。这样开发人员本机测试的时候用的是自己本机的一套密码,生产环境部署的时候,用的是公司的公共账号和密码,这样就能增加安全性
★ 环境变量的设置
-
方式一. 设置系统环境变量
-
第一步 在我们的电脑上鼠标右键此电脑,选择属性,进去之后,点击高级系统设置
-
第二步 点击环境变量
-
第三步 编辑环境变量并保存
-
-
方式二. 设置Pycharm环境变量
-
方式三. 设置单个项目的环境变量
-
方式四. 将环境变量按指定格式写入到文件(一般设置为隐藏格式如 .env)
-
1.编辑环境变量文件
.env
API_KEY=abcdef123456 DEBUG=True MAX_CONNECTIONS=10
-
2.加载环境变量文件
-
使用
os.environ
""" 在Python中,os.environ是一个字典,保存了当前进程的环境变量。我们可以使用os.environ来读取env文件中的配置参数 """ import os # 从.env文件中读取配置参数 def read_env_by_file(file_path): with open(file_path, 'r') as file: for line in file: line = line.strip() if line and not line.startswith('#'): key, value = line.split('=') os.environ[key] = value # 示例:读取.env文件 read_env_by_file('.env') # 使用配置参数 api_key = os.environ.get('API_KEY') debug = os.environ.get('DEBUG') max_connections = os.environ.get('MAX_CONNECTIONS') print(f'API_KEY: {api_key}') print(f'DEBUG: {debug}') print(f'MAX_CONNECTIONS: {max_connections}')
-
使用
python-dotenv
""" python-dotenv是一个非常流行的Python库,用于读取.env文件。相比于手动解析.env文件,使用python-dotenv更加简洁和易用 """ from dotenv import load_dotenv # 从.env文件中加载配置参数 def read_env_by_file(file_path): load_dotenv(file_path) # 示例:加载.env文件 read_env_by_file('.env') # 使用配置参数 api_key = os.getenv('API_KEY') debug = os.getenv('DEBUG') max_connections = os.getenv('MAX_CONNECTIONS') print(f'API_KEY: {api_key}') print(f'DEBUG: {debug}') print(f'MAX_CONNECTIONS: {max_connections}')
-
-
★ 环境变量的读取
-
读取环境变量所有key
os.environ.keys()
-
环境变量常用key
-
Windows
系统os.environ['HOMEPATH']:当前用户主目录。 os.environ['TEMP']:临时目录路径。 os.environ["PATHEXT"]:可执行文件。 os.environ['SYSTEMROOT']:系统主目录。 os.environ['LOGONSERVER']:机器名。 os.environ['PROMPT']:设置提示符。
-
Linux
系统os.environ['USER']:当前使用用户。 os.environ['LC_COLLATE']:路径扩展的结果排序时的字母顺序。 os.environ['SHELL']:使用shell的类型。 os.environ['LAN']:使用的语言。 os.environ['SSH_AUTH_SOCK']:ssh的执行路径。
-
-
环境变量的增删改查
# 新增环境变量 os.environ['环境变量名称']='环境变量值' #其中key和value均为string类型 os.putenv('环境变量名称', '环境变量值') os.environ.setdefault('环境变量名称', '环境变量值') #更新环境变量 os.environ['环境变量名称']='新环境变量值' #获取环境变量 os.environ['环境变量名称'] os.getenv('环境变量名称') os.environ.get('环境变量名称', '默认值') # 删除环境变量 del os.environ['环境变量名称'] del(os.environ['环境变量名称']) # 判断环境变量是否存在 '环境变量值' in os.environ # 存在返回 True,不存在返回 False