import os
import winreg
import ctypes
def read_environment_variable():
# 获取当前的 PATH 环境变量
with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 0,
winreg.KEY_READ) as key:
current_path, _ = winreg.QueryValueEx(key, 'Path')
return current_path
def update_system_path(new_paths):
# 打开注册表以更新
with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 0,
winreg.KEY_SET_VALUE) as key:
current_path = read_environment_variable()
# 检查路径是否已存在
if 'C:\\ProgramData\\Anaconda3' not in current_path:
# 添加新的路径
if not current_path.endswith(';'):
current_path += ';'
new_path = current_path + new_paths
# 更新 PATH 环境变量
winreg.SetValueEx(key, 'Path', 0, winreg.REG_EXPAND_SZ, new_path)
# 触发环境变量变更
ctypes.windll.user32.SendMessageW(0xffff, 0x1A, 0, None)
# 提示用户重启电脑
ctypes.windll.user32.MessageBoxW(0, "请重启电脑以使更改生效!", "提示", 0)
else:
ctypes.windll.user32.MessageBoxW(0, "环境变量中已经有了anaconda!", "提示", 0)
if __name__ == "__main__":
# 设置要添加的路径
new_paths = r"C:\ProgramData\Anaconda3;C:\ProgramData\Anaconda3\Scripts;C:\ProgramData\Anaconda3\Library\mingw-w64\bin;C:\ProgramData\Anaconda3\Library\usr\bin;C:\ProgramData\Anaconda3\Library\bin"
# 更新 PATH
update_system_path(new_paths)