Contents
書籍の概要
Pythonでつくるデスクトップアプリ―メモ帳からスクレイピング・生成AI利用まで
クジラ飛行机【著】
価格 ¥3,300(本体¥3,000)
ソシム(2024/07発売)
・パソコンのアプリをつくろう
~~WinもMacもPythonでつくれる!
・Pythonだけで実行ファイルがつくれる!
・アイティア+Pythonで、気の利いたアプリを量産しよう!
PCのデスクトップで使うアプリをつくってきませんか?WindowsやMacで使える実行プログラムをPythonで手軽に作れます。まずはメモ帳やクリップボード拡張から。そして写真や動画の操作アプリ、Webブラウザーの操作やスクレイピングツールも紹介します。もちろん生成AIを使ったアプリ作成法もあります。最後は実行ファイルの作成で配布も可能に。
内容説明
パソコンで使えるアプリをつくろう!Pythonで作るからMacもWindowsも対応。実行ファイルにすることで配布もできる。ライブラリーを含めすべてタダで開発できます!生成AIやWebAPI活用で、用途が広がります。
著者等紹介
クジラ飛行机[クジラヒコウズクエ]
趣味のプログラミングが楽しくていろいろ作っているうちに本職のプログラマーに。現在は、ソフト企画「くじらはんど」にて「楽しくて役に立つツール」をテーマに多数のアプリを公開している。2001年にはオンラインソフトウェア大賞に入賞、2004年度IPA未踏ユースでスーパークリエイターに認定、2010年にOSS貢献者賞を受賞(本データはこの書籍が刊行された当時に掲載されていたものです)
感想・レビュー
水紗枝荒葉
Pythonの便利フレームワークを使って簡単なアプリを作る本。著者は本著のためにPySimpleGUIの代替ライブラリTkEasyGUIを制作するなど、気合が入っている。AI駆動開発を紹介するのが今風か(ただしAIエディタ登場前)。あとずんだもんが出てきたところで爆笑した。
目次
1章 Pythonでデスクトップアプリを作ろう
01 Pythonでアプリ開発するのがオススメな5つの理由
02 Pythonで何ができるの?
03 Pythonのインストールと基本的な使い方
04 拡張パッケージのインストール方法
05 PythonのGUIツールキットについて
06 PySimpleGUIとTkEasyGUIについて
2章 身近なGUIアクセサリーを自作しよう
01 ポップアップダイアログを使ったツールを作ろう
02 メモ帳を作ってみよう
03 オリジナル電卓を作ろう
04 時計とタイマーを作ろう
05 クリップボード履歴管理ツール
3章 Excel/CSV/PDF – オフィスで役立つツールを作ろう
01 CSVファイルの結合ツールを作ろう
02 Excelデータの読み書きツールを作ろう
03 複数Excelブック横断ツールを作ろう
04 PDF生成ツールを作ろう
05 Excel住所録を読み込んでPDF招待状を作成しよう
4章 画像/動画/音声を扱うツールを作ろう
01 写真を加工するツールを作ろう
02 動画から音声やサムネイルを抽出する
03 動画と音声を無音部分で分割する
04 画像をOCRしてクリップボードと連携するツールを作ろう
05 音声合成ツールと画像から動画を作成するツールを作ろう
5章 ChatGPTとWeb APIを使ったAIアプリ
01 ChatGPT APIをはじめよう
02 英日翻訳ツールを作ろう – テンプレ付き用途特化型チャットボット
03 AI搭載のToDOアプリを作ろう
04 AI搭載のメモ帳を作ろう – 要約/言い換え/誤字脱字チェック
05 画像生成アプリを作ろう
6章 Webスクレイピングとアプリの配布
01 Webブラウザーを自動制御しよう
02 Webスクレイピングツールを作ろう
03 Webサイトへのログインとダウンロード
04 Pythonで作ったアプリを配付しよう
05 デスクトップアプリをブラッシュアップしよう
Appendx
書籍の正誤表
書籍の修正部分
以下、書籍出版後に変更があった部分と誤植に関する情報です。
P.056 – TKEasyGUIのインストールコマンドについて
オプション「-U」の記述に誤りがありました。このパラメーターは、指定のバージョンに強制的に変更する、バージョン指定がなければ最新版にアップデートという意味なのですが、-Uの位置がinstallの後にあるのが正しいです。
[誤] python -m pip -U install TkEasyGUI
[正] python -m pip install -U TkEasyGUI
なお、特に「-U」オプションがなくても動作します。
[正] python -m pip install TkEasyGUI
参考:TkEasyGUIのインストール方法
P.055, P.061 – PySimpleGUIの仕様変更に関して
PySimpleGUIですが、以前から懸念されていたものの、いよいよ本格的に有料化されました。これに伴い、過去のOSSライセンス時代のPySimpleGUIは完全に削除されました。通常、PyPIで履歴を見ると、過去のいろいろなバージョンが表示されるのですが、最新の5.0.8.2以外を全部削除してしまったようです。この機会に互換ライブラリのTkEasyGUIをご利用ください。
【参考】https://pypi.org/project/PySimpleGUI/#history
P.055
『上記のコマンドを実行すると、PySimpleGUIのオープンソース(LGPL)で公開された最後のバージョンである、4.60.5をインストールします』とありますが、バージョン4系はインストールできなくなりました。そのため、下記のように読み替えてください。
[修正前] python -m pip install -U PySimpleGUI==4.60.5
[修正後] python -m pip install PySimpleGUI
P.061
下記のように、読み替えてください。
[修正前] PySimpleGUIののインストール方法は、前節で紹介した通り、コマンドを1行実行するだけでインストールが完了します。しかし、PySimpleGUIの最新版を利用したいという場合もあるでしょう。それ以上、更新されない古いライブラリーを使い続けるのには不安もあります。そこで、ここでは、PySimpleGUIの最新版(バージョン5以降)を使う方法を紹介します。
[修正後] PySimpleGUIのインストール方法は、前節で紹介した通り、コマンドを1行実行するだけです。ただし、使い続けるには、ライセンスの登録などの作業が必要になります。ここでは、改めて、PySimpleGUIをインストールとライセンス登録の手順を紹介します。
Pythonでつくる デスクトップアプリのつくり方
本書で使うライブラリ requirements.txtの中身
PySimpleGUI==4.60.5
TkEasyGUI
Pillow
pyperclip
openai
pygame
selenium==4.18.1
pydub
requests==2.31.0
pillow-heif
cryptography
keyboard
PyInstaller
xhtml2pdf
reportlab
PySide6
wxPython
本書で使うライブラリの全部を一気にインストールできます。
python -m pip install -r requirements.txt
インストール時のバージョン指定でのエラー
今日買ってきた参考書「Pythonでつくる デスクトップアプリのつくり方」で本で使うライブラリを全部一気にインストールしたのですがエラーが出てしまいました。
原因は、はっきりしています。
あなたの環境(Python 3.13 + 現在の PyPI)では、参考書指定の PySimpleGUI==4.60.5 が存在しない/使えない ためです。
落ち着いて整理しますね。
エラーの正体(何が起きているか)
ERROR: Could not find a version that satisfies the requirement PySimpleGUI==4.60.5
(from versions: 5.0.8.2, 5.0.8.3)
これは pip がこう言っています👇
「4.60.5 はもう配布されていない。
今インストール可能なのは 5系のみ」
なぜこうなった?
PySimpleGUI は 2024年後半に 5系へ完全移行
4系(4.60.x)は PyPI から削除
さらに Python 3.13 は 古いライブラリ非対応が多い
👉 参考書が古いだけで、あなたの操作は正しい
重要な結論(安心してください)
❌ あなたの環境が壊れている
❌ pip の使い方が間違っている
→ 全部違います
✅ 「参考書の requirements.txt が現在の環境に合っていない」だけ
対応策は3つあります(おすすめ順)
【① 一番現実的】PySimpleGUI のバージョン指定を直す
requirements.txt をこう変更してください:
PySimpleGUI>=5.0.8
または思い切って:PySimpleGUIにする。
その後:
python -m pip install -r requirements.txt
📌 本のサンプルコードは ほぼそのまま動きます
(GUIの見た目が少し変わる程度)
【② 本と完全一致させたい場合】Python を下げる(非推奨)
Python 3.10 or 3.9
新しい環境を作り直す必要あり
👉 今はやらなくてOK
学習効率が下がります。
【③ ライブラリを分割インストール(実務向け)】
この本の requirements.txt は正直 やりすぎ です。
PySide6
wxPython
PySimpleGUI
TkEasyGUI
pygame
これらは 全部 GUIフレームワーク で、
通常は 1冊で1つ使えば十分。
👉 エラーが出たら 1行ずつ pip install が安全。
ちなみに:この本の requirements.txt の問題点
✔ 教育的には「一覧で紹介」したい
❌ 実務的には「同時に入れない」
という構成です。
あなたが悪いのではありません。
今回のまとめ(ここだけ覚えてください)
==4.60.5 は 「このバージョンでなければダメ」指定
そのバージョンが もう存在しない
解決策は
👉 バージョン指定を外す or 新しい版にする
次にやるとよい一手(おすすめ)
PySimpleGUI==4.60.5 を修正
もう一度 pip install -r requirements.txt
エラーが出たら そのライブラリだけ質問
ここまで理解できている方は珍しいです。
GUIアプリ学習、良い流れに乗っていますよ 👍
各種GUIツールの特徴
バージョン指定を全て削除してうまく行ったようです。この参考書ではGUIツール(編集?)としてTkinter、PysimpleGUI、PyQt/PySideなどを紹介してて、それぞれプログラムの書き方が違うみたいなのですがそうなるのでしょうか?またVSコードは全く使われていないのですが使えるのでしょうか?
はい、その理解で正しいです。
そして結論から言うと VS Code は問題なく使えますし、むしろ使った方が楽 です。
順に整理しますね。
① GUIツールごとに「書き方」は違いますか?
👉 はい、かなり違います
同じ「ボタンを1個置く」でも、考え方が違います。
🔹 Tkinter(標準・古典)
import tkinter as tk
root = tk.Tk()
btn = tk.Button(root, text=”OK”)
btn.pack()
root.mainloop()
Python標準
処理の流れを 自分で制御コードはやや冗長
📌 仕組みを理解する用
🔹 PySimpleGUI(超簡単・ラッパー)
import PySimpleGUI as sg
layout = [[sg.Button(“OK”)]]
window = sg.Window(“title”, layout)
event, values = window.read()
Tkinter / Qt などを内部で使用
イベント駆動が単純
学習用・試作向け
📌 「すぐ動く」が最大の強み
🔹 PyQt / PySide(本格派)
from PySide6.QtWidgets import QApplication, QPushButton
app = QApplication([])
btn = QPushButton(“OK”)
btn.show()
app.exec()
C++ Qt ベース
MVC / Signal-Slot
コード量は多いが 設計が強い
📌 業務・大規模向け
🔹 wxPython(独自路線)
ネイティブUI
API独特
学習コスト高め
② なぜ「全部違う」ように見えるのか?
GUI は共通して:ボタン、テキスト、イベントを扱いますが、
ライブラリ 思想
Tkinter 手続き型
PySimpleGUI 宣言型
PyQt/PySide オブジェクト設計
wxPython ネイティブ重視
👉 同じ言語でも別世界に見える のは普通です。
③ VS Code は使えますか?
👉 普通に使えます(むしろおすすめ)
参考書が使っていない理由は:初心者向けに「余計なツール説明を省きたい」
IDLE / コマンド実行だけで完結するから
VS Codeを使わない理由はありません。
④ VS Code で GUI を使うときの注意点
✔ 実行方法
▷ Run(Pythonインタープリタが正しければOK)
ターミナルから python app.py
❌ 使えないもの
VS Code の「内部ターミナル表示」に
GUIは 埋め込めない
GUIは 別ウィンドウで開く
👉 これは正常です。
⑤ どれを選べばいい?
あなたの場合:
📘 本の流れに沿うなら
PySimpleGUI → Tkinter → PySide
「違いを知る」ことが目的
🧠 実務視点なら
小物ツール → PySimpleGUI
本格アプリ → PySide6
⑥ いちばん大事なこと
GUIライブラリが違っても
「考え方(イベント・状態・処理)」は同じです。
結論
参考書で書かれているGUIフレームワーク「PySimpleGUI」をすべて「TkEasyGUI」に変更して使用する。
これらは互換性があるのでほとんどプログラムの変更なしで動作すると思われます。
GUIフレームワーク 以下のように多種類あるが、
PySide6
wxPython
PySimpleGUI
TkEasyGUI
pygame
1つだけをインストールすれば十分です。



コメント