Python の Gooey のインストールと動作確認(GUI アプリの作成)(Windows 上)

【概要】

Gooey は,コマンドラインの Python プログラムを,関数に一つのデコレータ(@Gooey)を付けるだけで GUI アプリ(フォームやダイアログ)に切り替えられるライブラリである.内部では wxPython(Python 用の GUI ライブラリ)を用いる.argparse(Python 標準のコマンドライン引数解析)で書かれたプログラムを,そのままの引数定義で GUI 化できる.

【目次】

【関連する外部ページ】

1. 前準備

Python 3.12 のインストール

Pythonのインストールを行い、Pythonのプログラムを実行する環境を整える。扱う環境は、Windows搭載パソコンである。金子研究室では、Python 3.12.10を推奨する。

[Windows での Python 3.12 のインストール手順を見るには、ここをクリック]

Windows での Python 3.12 のインストール

以下のいずれかの方法でPython 3.12をインストールする。Pythonがインストール済みの場合、この手順は不要である。

方法 1:winget によるインストール

【インストールコマンドの実行方法】

管理者権限でコマンドプロンプトを起動する(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。

--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動するとPATHが反映される。

REM Python 3.12 をシステム領域にインストール
winget install --id Python.Python.3.12 -e --scope machine --silent --accept-source-agreements --accept-package-agreements --override "/quiet InstallAllUsers=1 PrependPath=1 Include_test=0 Include_pip=1 Include_launcher=1 InstallLauncherAllUsers=1 TargetDir=\"C:\Program Files\Python312\""
if not "%ERRORLEVEL%"=="0" ( color 0c & echo Python 3.12 のインストールに失敗しました & ping 127.0.0.1 -n 6 >nul & color )

REM Python と Scripts を PATH 先頭に追加
powershell -NoProfile -Command "$p='C:\Program Files\Python312'; $s=\"$p\Scripts\"; if(Test-Path $p){$k=[Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\CurrentControlSet\Control\Session Manager\Environment',$true); $c=$k.GetValue('Path','',[Microsoft.Win32.RegistryValueOptions]::DoNotExpandEnvironmentNames); $t=$k.GetValueKind('Path'); $new=$c; if((';'+$new+';') -notlike \"*;$p;*\"){$new=$p+';'+$new}; if((';'+$new+';') -notlike \"*;$s;*\"){$new=$s+';'+$new}; if($new -ne $c){$k.SetValue('Path',$new,$t)}; $k.Close()}"

REM 現在のセッションにも反映(システムPATHを再取得して連結)
for /f "usebackq tokens=2,*" %A in (`reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path`) do set "PATH=%B"

REM pip / wheel の更新
python -m pip install --no-user -U pip wheel
if not "%ERRORLEVEL%"=="0" ( color 0c & echo pip / wheel の更新に失敗しました & ping 127.0.0.1 -n 6 >nul & color )

方法 2:インストーラーによるインストール

  1. Python公式サイト(https://www.python.org/downloads/)にアクセスし、「Download Python 3.x.x」ボタンからWindows用インストーラーをダウンロードする。
  2. ダウンロードしたインストーラーを実行する。
  3. 初期画面の下部に表示される「Add python.exe to PATH」にチェックを入れてから「Customize installation」を選択する。このチェックを入れ忘れると、コマンドプロンプトから python コマンドを実行できない。
  4. 「Install Python 3.xx for all users」にチェックを入れ、「Install」をクリックする。

インストールの確認

コマンドプロンプトで以下を実行する。

python --version

バージョン番号(例:Python 3.12.x)が表示されればインストール成功である。「'python' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない。

2. Gooey のインストール

  1. 管理者権限でコマンドプロンプトを起動する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。

  2. 起動したコマンドプロンプトで,次のコマンドを実行する.-U は最新版へ更新するオプション,--no-user はユーザ領域ではなくシステム領域へインストールするオプションである.
    python -m pip install -U --no-user gooey
    

3. 演習1 Gooey による GUI アプリの動作確認

【テーマ名】 Gooey のデコレータによるコマンドライン・プログラムの GUI 化と,MultiFileChooser を用いた複数ファイル選択の動作確認

【手順】

  1. 次のコードを実行(メモ帳を用いる場合は a.py のようなファイル名で保存して実行)する.これは,複数ファイルを選択できるファイルダイアログを含むプログラムである.
    from gooey import Gooey, GooeyParser
    
    @Gooey(required_cols=0)
    def main():
        parser = GooeyParser(description='Process something.')
    
        parser.add_argument('-i', '--infiles', nargs='*', metavar='InFiles', help='Choose one file or more!', widget="MultiFileChooser")
        parser.add_argument('-n', '--name', metavar='Name', help='Enter some text!')
        parser.add_argument('-f', '--foo', metavar='Flag 1', action='store_true', help='I turn things on and off')
        parser.add_argument('-b', '--bar', metavar='Flag 2', action='store_true', help='I turn things on and off')
    
        a = parser.parse_args()
        print(a.infiles)
        print(a.name)
        print(a.foo)
        print(a.bar)
    
    if __name__ == '__main__':
        main()
    
  2. GUI の画面が表示される.
  3. 「Browse」をクリックすると,ファイルを選べる.ファイルは複数選べる.
  4. 選び終えたら「Start」をクリックする.
  5. このプログラムは,選んだファイル名などを表示する.

【ヒント】

【考察ポイント】