😆

Python デスクトップアプリ開発に挑戦してみた!

2023/06/27に公開

Pythonプログラミングを使ったデスクトップアプリ開発に挑戦してみました。

作成するアプリ

ボタンを押すだけで勝手にブラウザが開き、

Amazon、楽天市場、ヤフーショッピングのサイトを同時に開く

そんなアプリを作りたいです。

Chromeの拡張機能やWebサービスでできそうですが、外部の拡張機能を使わずに、しかもネットを利用しないローカル環境で使いたいです。

※Chromeの拡張機能はセキュリティ的に不安な要素があり、しかもブラウザの速度を低下させる要因にもなります。

作成方法

本のサンプルコードをコピペして、必要な個所を書き換える。

使用する本はこちら。

Pythonではじめるデスクトップアプリ開発入門
https://amzn.to/3r1PMpf

作成したコード

作成したコードはこちら。

複数サイトを同時に開くアプリ
# coding: utf-8

# tkinterのインポート
import tkinter as tk
import webbrowser

# URLアドレス
url1 = "https://www.amazon.co.jp/"
url2 = "https://www.rakuten.co.jp/"
url3 = "https://shopping.yahoo.co.jp/"

### 関数 ###
# 関数の定義
def runFunc():
    webbrowser.open(url1)
    webbrowser.open(url2)
    webbrowser.open(url3)

### GUI ###
# ウインドウの作成
root = tk.Tk()
# ウインドウのサイズ指定
root.geometry("250x100")

# Runボタン
run_button = tk.Button(root, text = "Run", command = runFunc)
run_button.place(x = 110, y = 30)

# ウインドウ状態の維持
root.mainloop()

作成したアプリをexe化する

プログラムはLunux Ubuntuを入れたパソコンを使い、そのままexe化させようとしたが、できなかった。どうやら、exe化するためにはWindowsパソコンで作業しなければならないらしい。そこで、Windows 11パソコンで作業をすることにした。

Windows 11側で作業したこと

検索ボックスに「cmd」と入力し、コマンドプロント開く。

そこで、以下のコマンドを入力する。

pip install pyinstaller

これで、pyinstaller-5.13.0がインストールされた。

次に、Pythonバージョンの確認。以前、Pythonをインストールしておいたので、確認する。インストールしていない人はインストールする必要がある。

コマンドプロンプトで

python --version 

確認すると、「Python 3.11.4」がインストールされていた。

次に、exe化したいPythonのファイルを用意する。

自分が作ったファイルは「test_url_app.py」だった。

このファイルは、エクスプローラーを使い、コマンドプロントの先頭に記載されている場所(自分の場合C:\Users\user)に置く。

pyinstallerでexe化する。

pyinstaller test_url_app.py

エラーの対処方

コマンドを入力すると、エラーが出た。

'pyinstaller' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

何のことなのか、さっぱり分からず、とりあえずググってみる。

すると、以下のページを見つけた。

windows10環境でpyinstallerが使えません https://teratail.com/questions/297176

さらにリンク先を追っていくと、以下ような記述があった。

pyInstallerインストール完了した時、そのメッセージには、"C:\Users\USER_NAME\AppData\Roaming\Python\Python(バージョン)\Scripts"にインストールしたから、環境変数でパス指定したほうがいいという文章がある。

コマンドプロントの画面を確認してみると、たしかに同じことが書かれていた。

自分の場合、パスは以下のようになっていた。

C:\Users\user\AppData\Roaming\Python\Python311\Scripts

どうやら、このパスをWindowsの「環境変数」に書き加えるといいらしい。

環境変数については、以下のページを参照。

【Windows 11対応】Path環境変数を設定/編集して、独自のコマンドを実行可能にする:Tech TIPS - @IT https://atmarkit.itmedia.co.jp/ait/articles/1805/11/news035.html

この方法で、自分、および他のユーザーの2か所を編集し、環境変巣に自分のパスをコピーして貼り付けた。

そして一度、コマンドプロントを終了させ、再びコマンドプロントを開いて、コマンドを入力。

pip install pyinstaller

すると、今度はあっさりと成功した。

exeファイルのショートカットを作成

ファイルを作成したら、buildとdistフォルダが自動で作成される。

自分の場合は、pythonファイルを置いた場所、C:\Users\user、にフォルダが作成されていた。

このうち、distファイルの中にexeファイルがある。

見つけたら、右クリックで「その他のオプションを選択」→「ショートカットの作成」を選択し、ショートカットを作成していく。

ショートカットを作成したら、それをデスクトップに張り付ける。

すると、ダブルクリックで起動できるようになる。

アプリを使った感想

やはり、一度に複数のページを同時に開いてくれるというのは便利。コードは3つのサイトを同時に開くようにしているが、自分はさらに2つを付け足し、合計5つのページを同時に開くようにした。

実際に使ってみると、作業がいつもより速くなり、時間短縮につながった。

面倒なことはプログラムで済ませることに限る、とつくづく感じた。

参考文献

Pythonではじめるデスクトップアプリ開発入門
https://amzn.to/3r1PMpf

Discussion