📜  在 python 中创建环境变量(1)

📅  最后修改于: 2023-12-03 15:07:46.405000             🧑  作者: Mango

在 Python 中创建环境变量

环境变量是一种系统级数据,可用于配置应用程序的各种参数、路径和其他特性。在 Python 中,我们可以使用 os 模块来访问和修改环境变量。本文将向您介绍如何在 Python 中创建环境变量。

检查环境变量

在 Python 中,我们可以使用 os.getenv() 函数来检查一个环境变量是否已经存在。该函数接受一个环境变量名称作为参数,并返回变量的值。如果变量不存在,则返回 None

import os

var_name = 'MY_VAR'

# 如果 MY_VAR 存在则返回其值,否则返回 None
var_value = os.getenv(var_name)

if var_value is None:
    print(f'{var_name} 环境变量未设置')
else:
    print(f'{var_name} 环境变量的值为: {var_value}')
创建环境变量

在 Python 中,我们可以使用 os.environ 字典对象来访问和修改环境变量。该字典对象包含了当前环境中所有的环境变量,你可以使用索引访问或者将值赋给变量。如果你修改了字典中的值,则相应的环境变量也会被修改。

import os

var_name = 'MY_VAR'
var_value = 'my value'

# 创建一个名为 MY_VAR 的环境变量
os.environ[var_name] = var_value

# 检查环境变量是否设置成功
if os.getenv(var_name) == var_value:
    print(f'创建名为 {var_name} 的环境变量成功!')
永久保存变量

如果你想在系统重启后仍然可以访问到你的环境变量,你需要将其存储到系统环境变量中。在 Windows 或 Linux 中,你可以使用不同的方法来实现此目的。这里我们将演示如何在 Windows 中将环境变量写入系统注册表。

首先,我们需要导入 winreg 模块,它指定了在 Windows 中访问系统注册表的函数和常量。

import winreg

然后,我们需要将环境变量写入到系统注册表中。在 Windows 中,环境变量存储在以下键值中:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment:存储全局环境变量。
  • HKEY_CURRENT_USER\Environment:存储当前用户的环境变量。

我们将使用 winreg.OpenKey() 函数打开上述键值,然后使用 winreg.SetValueEx() 函数将环境变量写入到注册表中。

import winreg

var_name = 'MY_VAR'
var_value = 'my value'

# 打开全局环境变量键值
env_path = r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment'
with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, env_path, 0, winreg.KEY_SET_VALUE) as env_key:
    # 写入变量值
    winreg.SetValueEx(env_key, var_name, 0, winreg.REG_SZ, var_value)

    # 刷新环境变量
    winreg.SendMessage(winreg.HWND_BROADCAST, winreg.WM_SETTINGCHANGE, 0, 'Environment')

如果你想将环境变量保存到当前用户的环境变量中,你可以使用以下代码:

import winreg

var_name = 'MY_VAR'
var_value = 'my value'

# 打开当前用户的环境变量键值
env_path = r'Environment'
with winreg.OpenKey(winreg.HKEY_CURRENT_USER, env_path, 0, winreg.KEY_ALL_ACCESS) as env_key:
    # 写入变量值
    winreg.SetValueEx(env_key, var_name, 0, winreg.REG_SZ, var_value)

    # 刷新环境变量
    winreg.SendMessage(winreg.HWND_BROADCAST, winreg.WM_SETTINGCHANGE, 0, 'Environment')

现在,无论是在 Windows 还是 Linux 中,你都已经学会如何在 Python 中创建环境变量了。