Pythonで簡単に環境変数を設定するスクリプトの作成方法

  • URLをコピーしました!

当ブログのコンテンツ・情報について、できる限り正確な情報を提供するように努めておりますが、正確性や安全性を保証するものではありません。
当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますので、予めご了承ください。

この記事ではWindows11環境のPythonで簡単に環境変数を設定するスクリプトの作成方法を解説します。

目次

この記事で使用するPythonライブラリ

この記事では以下のPythonライブラリを使用します。

ライブラリ用途ライセンス
winreg環境変数(PATH)の取得・編集Python標準モジュール
ctypesWindowsのネイティブAPIを利用したダイアログ表示Python標準モジュール
os環境変数の操作やシステムコマンドの実行Python標準モジュール

実装例

下記に、実際のコーディング例と解説を示します。

このスクリプトを実行するとC:\example\pathがユーザー環境変数に設定されます。

  1. show_message_box関数
    • ctypesを使ってWindowsのダイアログボックスを表示します。
    • 引数にはメッセージ、タイトル、フラグを指定します。
  2. add_to_system_path関数
    • レジストリに新しいパスを追加します。
    • 既に存在する場合はダイアログで通知し、終了します。
  3. restart_prompt関数
    • パスの追加後に再起動を促すダイアログを表示します。
    • 「はい」を選ぶと即座に再起動 (shutdown /r /t 0) を実行します。
    • 「いいえ」を選ぶと通知だけを行います。
import os
import winreg
import ctypes

MB_YESNO = 4
MB_ICONQUESTION = 32
IDYES = 6

def show_message_box(text, title, flags):
    return ctypes.windll.user32.MessageBoxW(0, text, title, flags)

def add_to_system_path(new_path):
    with winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Environment", 0, winreg.KEY_READ | winreg.KEY_WRITE) as key:
        try:
            current_path = winreg.QueryValueEx(key, "Path")[0]
        except FileNotFoundError:
            current_path = ""

        if new_path not in current_path:
            updated_path = current_path + os.pathsep + new_path if current_path else new_path
            winreg.SetValueEx(key, "Path", 0, winreg.REG_EXPAND_SZ, updated_path)
            show_message_box(f"PATHに{new_path}を追加しました。", "成功", 0)
            return True
        else:
            show_message_box(f"{new_path}はすでにPATHに存在します。", "情報", 0)
            return False

def restart_prompt():
    response = show_message_box(
        "PCを再起動する必要があります。\n\n再起動しますか?", "再起動の確認", MB_YESNO | MB_ICONQUESTION
    )
    if response == IDYES:
        os.system("shutdown /r /t 0")  # 即時再起動
    else:
        show_message_box("再起動は後で行ってください。", "確認", 0)

# 使用例
new_path = r"C:\example\path"
if add_to_system_path(new_path):
    restart_prompt()

システムの環境変数に設定する場合

システムの環境変数に設定する場合は13行目を下記のように記述します。なお、スクリプトの実行には管理者権限が必要です。(PowerShellから実行する場合は、PowerShellを管理者として実行してください。)

    with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", 0, winreg.KEY_READ | winreg.KEY_WRITE) as key:

まとめ

この記事では、Windows 11環境でPythonを使い、ユーザー環境変数およびシステム環境変数にパスを追加する方法を解説しました。特に、環境変数の編集が必要なシステム管理やアプリケーション開発の効率化に役立つスクリプトを紹介しています。

ユーザー環境変数では個人の設定を、システム環境変数では全体の設定を変更することで、それぞれの用途に応じた管理が可能です。また、追加後に再起動を促す仕組みも含めて実装しました。実行には管理者権限が必要な場合があるため、適切な環境でご利用ください。

この記事を参考に、効率的な環境設定を行い、Pythonスクリプトの活用範囲を広げてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
目次