この記事の要点
- Pythonのデスクトップアプリ作成には、Tkinter、wxPython、PyQt、Kivyなどのライブラリがよく使われる
- 使用するライブラリは、どんな見た目でどんな機能が欲しいのかを考えて選ぶ
- アプリを配布するには実行ファイルに変換する方法が一般的で、比較的簡単にできる
Pythonでデスクトップアプリの開発はできるのでしょうか。
デスクトップアプリの開発と聞くとWindowsならC#やJava、macOSならSwiftなどのコンパイラ言語を思い浮かべる方が多いかと思いますが、スクリプト言語のPythonでもデスクトップアプリの開発はできます。
Pythonにはデスクトップアプリ開発用のライブラリも多数用意されており、これらを使用することでデスクトップアプリの作成が可能です。
また作成したアプリは配布できるため、スキルが身につけば案件の受注やインターネット上で販売し報酬を得ることができます。
Pythonの副業案件について詳しく知りたい方はこちら。
この記事では、Pythonのデスクトップアプリ作成に使えるライブラリやアプリを配布する方法、Pythonのデスクトップアプリ作成の学習に役立つサイト・書籍を紹介します。
「Pythonでデスクトップアプリを作成したいけれど、まだ学習を始めたばかり」という初心者の方はこちらの記事も参考になりますよ!
目次
デスクトップアプリとは?
デスクトップアプリとは、パソコンのデスクトップ環境で起動し動作するアプリケーションのことです。
アプリケーションというとデスクトップアプリを指す場合がほとんどですが、最近はWebアプリが主流になりつつあるので区別して呼ばれています。
インターネット上で使用するWebアプリの場合はインターネット接続がないと利用できませんが、デスクトップアプリはインストールしておけばインターネットに繋がっていない状態でも使用可能なのが特徴です。
Pythonのデスクトップアプリ作成に使えるライブラリ
Pythonにはデスクトップアプリ開発ができるライブラリが用意されていますので、これらを利用して開発を行いましょう。
今回はPythonでのデスクトップアプリ開発に使用される代表的なGUIライブラリを4つ紹介します。
Tkinter
TkinterはPythonに標準で搭載されているツールキット(ライブラリのあつまりのようなもの)で、簡単にデスクトップアプリの作成が可能です。
TkinterはクロスプラットフォームなGUIライブラリのため、WindowsのほかmacOSやLinuxにも対応しています。
他のライブラリと比べると画面がすこしやぼったく、機能は少なめです。
しかし書籍やインターネット上に情報が多く、コードがシンプルなため初心者は一番利用しやすいライブラリといえるでしょう。
以下のサイトで使い方が解説されていますので参考にしてください。
15分ほどで解説したtkinterの簡単な使い方の動画です。
wxPython
wxPythonはC++言語で作られたwxWidgetsというGUIツールキットのPythonバインディングで、汎用的でモダンな外観のデスクトップアプリの作成が可能です。
wxPythonは他のライブラリと比べて機能が充実しているので、Tkinterの見た目の古さや機能の物足りなさを感じた方が次に使用することが多いライブラリといわれています。
日本語の情報が豊富かつ商用利用も無料と導入へのハードルも低く、初心者におすすめのライブラリです。
処理速度が速く動作も安定しているためゲームや手間のかかる複雑な機能が付いているアプリも作成可能で、Python開発者が絶賛しているライブラリでもあります。
ただし、Python3以降で使用できる点は注意しましょう。
以下のサイトで使い方などをご覧ください。
PyQt
PyQtはC++言語で作られたQtというデスクトップ開発用フレームワークをPythonから呼び出せるようにしたQtのPythonバインディングです。
PyQtもクロスプラットフォームなGUIライブラリのため、WindowsだけでなくmacOSやLinuxでも動作するデスクトップアプリを作成できます。
視覚的・直観的にレイアウトの作成が可能で、モダンな今風のデザインを作りたい方にはおすすめです。
個人利用の場合は無料で利用できますが、商用利用にはライセンス取得が必要なため有料です。
以下のサイトで詳しく解説されています。
(PyQtは他のライブラリと比べて英語のガイドが多めです)
Kivy
Kivyは見た目がモダンなデスクトップアプリを作成できるライブラリで、MITライセンスで配布されているので商用利用しやすいです。
マウスやキーボードだけでなくタッチパネル操作などのマルチタッチイベントに対応しており、WindowsやmacOSだけでなくコーディングした後は、AndroidやiOSなどのスマホ環境でも動作します。
Kivyはゲームライブラリではありませんが、グラフィック処理が速く画像読み込みなどの機能が豊富なため、シューティングゲームやファミコンゲームのような2Dゲームの作成も可能です。
以下のサイトでインストール方法やサンプルプログラムが解説されていますので、参考にしてください。
Pythonのデスクトップアプリを配布する方法
デスクトップアプリを作成したら、誰かに利用してもらうためにアプリを配布してみましょう。
しかし配布先の方がPythonをインストールしていなかった場合、ソースファイルを渡しただけになりアプリの実行ができません。
Python本体やライブラリをインストールしてもらうのは手間がかかるので、Pythonを実行ファイルに変換すればPythonを持っていない方でもアプリを起動し実行可能です。
実行ファイルとは
実行ファイルとは、プログラムファイルのことです。
Windowsの実行ファイルは、拡張子EXEが使われることが多いです。
ダブルクリックをすると、プログラムが起動しファイル単体で動作が完結するので、実行ファイルを使えば誰のパソコン上でもアプリを動かせます。
ここでは2つの配布方法を紹介しますので、配布したい相手のOSや手軽さなどにより適した方を選んでください。
実行ファイルを作成する方法:PyInstaller
実行ファイルの作成には、手間が一番少なく、最も簡単に作成できるPyInstallerを用いるのが一般的です。
PyInstallerを使用すると、Python本体、作成したPythonプログラム、プログラム中で使用しているモジュールがまとめて実行ファイルに変換されます。
PyInstallerで実行ファイルを作成する場合はOSに依存するため、WindowsとLinuxで変換した実行ファイルはWindowsとLinuxでしか実行できません。
macOSで実行ファイルを作成すると、EXEファイルではなくmacOSの実行ファイルであるUnixファイルが作成されます。
実行ファイルを作成する流れ
- PyInstallerのインストール
- 実行ファイルに変換
- 実行ファイルを使用して動作確認
この3ステップで簡単に配布用ファイルを作成できます。
PyInstallerではアイコンを自由に設定できるため、オリジナルアプリ感を出せるでしょう。
インストーラを作成する方法:cx_Freeze
cx_FreezeはWindows、macOS、Linuxを含むクロスプラットフォームに対応しています。
EXE化だけでなくインストーラの作成が可能なためOSに依存しないプログラムを配布することができ、動作が軽いので配布したアプリの起動時間もPyInstallerより早いです。
インストーラを作成する流れ
- cx_Freezeのインストール
- setup.pyの作成
- ビルドしmsiファイルの作成
- インストールし動作確認
この4ステップで作成ができます。
配布ファイルの作成には若干手間がかかりますが、PyInstallerでEXE化できない場合やOSが異なる場合はcx_Freezeを試してみましょう。
Pythonのデスクトップアプリ作成の学習に役立つサイト・書籍
最後にPythonでデスクトップアプリを作りたい方向けに役立つ学習サイトや書籍を紹介します。
自分の業務効率化やスキルアップ、職場環境改善などのためぜひ自作デスクトップアプリを作成してみましょう。
Pythonのデスクトップアプリ作成の学習に役立つサイト
Webでデスクトップアプリ作成を学習できるものを集めました。
- PC CHEM BASICS.COM Pythonではじめるアプリ開発
Tkinterでのデスクトップアプリの作成手順がEXE化まで体系的に学べる - Python-izm
基礎からwxPythonでのデスクトップアプリの作成が学べる - YouTube「【超入門】Pythonデスクトップアプリの作り方」
Tkinterでのデスクトップアプリ作成について学べる - Udemy「はじめてのPython3。経験0からGUIアプリケーションを作れるまでの基礎力を!」
Pythonの基礎文法からライブラリを使ったデスクトップアプリ作成まで学べる大ボリュームの入門講座
こちらで紹介したような学習サイトよりも、検索すると個人のブログや自作アプリの使い方やエラーの解消法を紹介するQiitaのページが多い印象です。
アプリ作成に戸惑ったら、使用するライブラリ名やエラーコードで検索すると打開策が見つかるかもしれません。
Pythonのデスクトップアプリ作成の学習に役立つ書籍
デスクトップアプリ作成について書かれた本は、入門編というよりもPythonの文法などの基礎が身に付いた中級者向けのものが多いです。
初心者はまずはPythonに慣れて基礎を身につけた後、以下のテキストを用いて学習を進める方がスムーズでしょう。
- Python[完全]入門
基礎からアプリ作成まで学べるボリュームのあるPython入門書 - Pythonではじめるデスクトップアプリ開発入門
基礎レベル程度の初心者がオリジナルのメモ帳など小・中規模のアプリの作り方を学習できる - シゴトがはかどる Python自動処理の教科書
自動化ツールアプリを作成する手順が学べる - Pythonをおぼえた人がGUIアプリケーション開発をするためのtkinter速習入門
Tkinterの使い方がまとめられている入門書(Pythonの基礎が身についている方向け)
プログラミング未経験でPythonを学習したい、初心者だけどどんな方法で学習したらいいかわからない方は、この記事で紹介されているPythonの学習サイトや書籍もチェックしましょう。
まとめ
今回はPythonを使ったデスクトップアプリ作成に使えるライブラリを中心に、アプリの配布方法や学習方法も解説しました。
デスクトップアプリの作成はPythonの基礎知識や文法を理解していないと難しいですが、ライブラリを使うと比較的簡単に作れます。
最初にインストールのいらない標準ライブラリTkinterを使用してアプリを作成し、流れを掴めたら他のライブラリを試す学習者が多いようです。
Pythonの基礎を学習した後はぜひデスクトップアプリを開発し、友人やインターネット上で自作アプリの配布を行ってみてはいかがでしょうか。
また、Pythonエンジニアとして高収入を目指していきたい方におすすめのエージェントをご紹介していますので、こちらの記事も参考にしてください。