プログラミング

更新日:2020/12/08

【未経験向け】Pythonでデスクトップアプリを簡単に作る方法とは?おすすめライブラリを紹介!

【未経験向け】Pythonでデスクトップアプリを簡単に作る方法とは?おすすめライブラリを紹介!
ロゴ画像:公式サイトより https://www.python.org/community/logos/
本記事はプログラミング初学者に向けた記事となっています。これからPythonを勉強する方のために現役エンジニアの方に寄稿頂きました。未経験の方でもわかりやすい内容となっていますので、ぜひ参考にしてPython学習にお役立てください。

スキルアップにおすすめなプログラミングスクール【3選】

TechAcademy(テックアカデミー)の公式サイト
TechAcademy|Pythonコース
.Pro(ドットプロ)の公式サイト
.Pro(ドットプロ)|AI×Djangoコース
DIVE INTO CODEの公式サイトへ
DIVE INTO CODE|機械学習エンジニアコース
業界最大手で完全オンライン。現役エンジニアによる指導で【コスパ良し】です 少人数制の集中講座なので、未経験でも【実践的】なスキルが【確実】なものに ネットやSNSでの評判がとても良いスクール。Pythonをじっくりと習得するならここ
→ 体験談を読む → 評判・口コミを読む → 体験談を読む
→ 公式サイトへ → 公式サイトへ → 公式サイトへ

デスクトップアプリって何?

デスクトップアプリって何?

デスクトップアプリと言われてピンと来る人は多くないかもしれません。Webアプリケーションの台頭によって、区別の為にわざわざ『デスクトップアプリケーション』→『デスクトップアプリ』と言われています。もっと言えば、普段PC作業する人がインストールするアプリケーションはだいたいデスクトップアプリに分類されます。

GUIアプリとほぼ同じ意味で使われることもありますし、略してアプリケーション、更に略してアプリと呼ばれたりもします。ちなみにアプリケーションはアプリケーションソフトウェアの略で、ソフトウェアという単語が入っていないのでアプリと言われても少し理解が難しいですが、単純にソフトウェアのことを指しています。ややこしいので呼称を統一してもらいたいものですね。

Pythonでのデスクトップアプリ生成の選択肢

Pythonでのデスクトップアプリ生成の選択肢

Pythonでデスクトップアプリを生成することは可能なのでしょうか。答えは『Yes』です。デスクトップアプリを生成する為に便利なライブラリも多々用意されていますので、ここでは良く用いられるライブラリを4つ紹介します。

具体的な使い方はここでは紹介しませんが、ご興味のある方はそれぞれのリンク先に具体例が載っていますので参照いただければと思います。

Tkinter

TkinterはPython環境を構築した際に標準導入されているライブラリです。Tcl/TkのTk部分をPythonから制御できるようにしたもので(このような関係性をバインディングといいます) 、デスクトップアプリを素早く構築可能です。

今更Tcl/Tkを個別に使うことは少ないかもしれませんが(もしいらっしゃったらすみません。。)、Tcl/Tkとのインターフェース互換性があるので、従来のユーザーにとっては嬉しい仕様のライブラリです。

とはいえ初めてのユーザーにも比較的取り組み易い仕様にはなっていると思います。なぜならweb上に解説記事が山のように転がっているからです。歴史が古い分、資産蓄積もなされているのですね。

Tcl/TkのPythonインターフェース
PythonのTkinterを使ってみる

Kivy

Kivyは美しいデスクトップアプリを開発したい場合の最適解だと思います。言語仕様として良く例えられるのがHTMLとCSSの関係性で、HTML→Python、CSS→kivyに置き換えられます。動作の核となる部分をPythonで実装し、そのレイアウトをKivyが担当ましょう、という思想ですね。

実は、Kivyの解説記事は多くありません。4つ紹介しているライブラリの中でも最も後発で、その分開発が積極的に行われているが故の問題です。英語の文献を読み解くことに抵抗のない方は、ぜひkivyを学んでもらいたいです。

Kivyのグラフィックは非常に洗練されていて、モダンデザインを構築したい場合には適していると思います。とはいえ具体例がないと想像しにくいと思いますので、参考リンクを掲載しておきます。

Python Kivyの使い方① ~Kv Languageの基本~
Kivy(英語)

PyQt

PyQtはQtのPythonバインディングです。バインディングは前述のTk⇔Tkinterのような関係性を指しますね。このライブラリもいつから存在していたのか記憶がありませんが、かなり古くから開発されているものです。これもあくまで私見ですが、PyQtの最大の強みはQtDesignerだと思います。

QtDesignerというデスクトップアプリ上で、画面を見ながら置きたい部品をどこにしようかなー??と考えながらレイアウトしていくわけです。視覚的に有利で、デスクトップアプリの草案が、急遽必要なんです!という場合にはうってつけですね。

個人で使用する場合全く問題ありませんが、企業での開発などにPyQtを使う場合はライセンス関連が少々厄介です。これを嫌ってPySideというライブラリを使用する方もいらっしゃるみたいです。また、後述するwxPythonも選択肢の一つです。

[PyQt + QtDesigner] Python で GUIアプリ開発 その1 ~ 開発の流れ ~



wxPython

wxPythonはwxWidgetsのPythonバインディングです。wxWidgetsはC++で実装されているのですが、バインディングなのでユーザーがC++の中身を気にする必要はありません。その最大の特徴として、PyQtのような煩わしいライセンスではなく、全て無料であるという点です。日本語の情報も多く、導入も非常に簡単です。Python開発者のグイド(Guido van Rossum)さんも下記の通りの絶賛ぶりです。

“wxPython is the best and most mature cross platform GUI toolkit, given a number of const raints. The only reason wxPython isn’t the standard Python GUI toolkit is that Tkinter
was there first.”

wxPythonのGUIデザイナーwxFormBuilderを使ってみる
Welcome to wxPython!

実行化ファイル(exe/app)について

実行化ファイル(exe/app)について

実行化するメリットは何?と聞かれると回答にこまってしまいます。勝手にPython環境入れておけよと。しかしそうも言っていられない場合もありますね。他の端末でもテストをする際にexe化は必要になるものです。

せっかく作ったデスクトップアプリならexe化して配布したいという場合もあるかもしれません。良い機会ですのでexe化する為の選択肢を2つ紹介します。なお、使い方は簡単なのですが、exe/app化の際にエラーが多発するモジュールです。

状況に応じて対策が異なりますのでエラーメッセージを検索してみてください。偉大な先人たちが資産を残してくれている場合が多いです。

pyinstaller

Windows用のexeファイルへの変換時に使います。私の経験則ではあまりエラーで落ちることはありません。作業ディレクトリに移動して”pyinstaller xxx.py”を実行するだけで事足ります。

cx_Freeze

exe化だけでなく、 Mac用のappファイルへの変換時に使えるライブラリです。pyinstallerに比べると少し面倒で、setup.pyをxxx.pyとは別に用意する必要があります。必要なファイルを揃えた後に、作業ディレクトリに移動して”python setup.py bdist_mac”を実行すれば、buildフォルダ内にappファイルが生成されます。

参考までに、良くあるエラーについてリンクをまとめておきます。

Error when using pyinstaller: UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xff
PyInstallerでexeファイル化
Pythonスクリプトを実行ファイル(app/exe)に変換

おわりに

Pythonでデスクトップアプリを作成する場合のライブラリ選択肢をご紹介しました。また実行ファイルが必要となった場合のライブラリと、簡単な操作についてもご紹介しました。手軽なPythonで、手軽にデスクトップアプリを生成してみましょう。

もう一度「【未経験向け】Pythonでデスクトップアプリを簡単に作る方法とは?おすすめライブラリを紹介!」を読む ↑

Python未経験者が本格的に学習するならスクールがおすすめ

Pythonを『未経験』からでも安心して学べるプログラミングスクールをご紹介します。少しでも気になるスクールがあれば、無料の相談会・体験会に登録してみてくださいね。

Pythonを学べるスクール5選

  1. TechAcademy|Pythonコース
    業界最大手で完全オンライン。現役エンジニアによる指導で【コスパ良し】です!

  2. .Pro(ドットプロ)|AI×Djangoコース
    少人数制の集中講座なので、未経験でも安心して学習できます

  3. DIVE INTO CODE|機械学習エンジニアコース
    ネットやSNSでの評判がとても良いスクール。Pythonがしっかり学べます

  4. Aidemy|AI特化のプログラミングスクール
    未経験でも【3ヶ月】で本格的なAI人材を目指せるオンラインスクールです
  5. PyQ™(パイキュー)
    Pythonの学習に特化。幅広いコースがあるので目的に沿った学習が可能です

Python以外の言語を学べるスクールを比較するなら

もっと多くのプログラミングスクールの中から比較したいという方は、「プログラミングスクール比較11選!社会人や未経験者にもおすすめ!【転職・就職にも有利】」という記事を参考にしてください。

プログラミングスクール比較11選!社会人や未経験者にもおすすめ!【転職・就職にも有利】

転職付き(転職保証型)のプログラミングスクールの詳細を知りたいかたは、「【無料あり】転職支援・保証型プログラミングスクール比較11選!社会人・学生さんの転職・就職に強い!」をご覧いただき、自分の目標や目的にぴったりのスクールを見つけてくださいね。

【無料あり】転職支援・保証型プログラミングスクール比較9選!社会人・学生さんの転職・就職に強い!

Pythonを活かせるエンジニア転職におすすめな転職サイト・転職エージェント

Pythonやdjangoを活かしたエンジニア転職におすすめな転職エージェント・転職サイトを比較するなら「IT/Web系に強い転職エージェント・転職サイト11選!【現役エンジニア厳選】」という記事を参考にしてください。活かせる言語や業種など、自分の目的や条件にあった職場探しにお役立てください。

IT/Web系に強い転職エージェント・転職サイト11選!現役エンジニア厳選

[PR]:AIエンジニア/データサイエンティストに【未経験】から目指すならここ

-プログラミング
-, , , , ,

関連記事

Pythonで自動化ツールを作れば効率化できることまとめ【未経験者必見!】

Pythonで自動化ツールを作れば効率化できることまとめ【未経験者必見!】

ロゴ画像:公式サイトより https://www.python.org/community/logos/ Pythonを使えば自動化ツールを作ることができ、業務の効率化が可能という紹介文はめずらしくあ …

R言語の基礎知識

R言語の特徴から学習方法、実際の仕事との関係までをわかりやすく解説!

ロゴ画像:R言語公式サイトより https://www.r-project.org/logo/ [PR]:データサイエンティストの転職に強いスキルを身につけるならここ 目次1 R言語とはどんなプログラ …

【初心者向け】Unityって何?できることやメリット・デメリットについて解説!

【初心者向け】Unityって何?できることやメリット・デメリットについて解説!

<ロゴ画像:Unity公式サイトより https://unity.com/ja/brand 本記事では、 Unityって何? Unityでどんな事ができるの? Unityを使うメリットを知りたい …

PHPで副業を始める!【副業を考える学生のための(Macユーザー向け)】

PHPで副業を始める!学生のための【PHP入門編】(Macユーザー向け)転職したい社会人も!

ロゴ画像:PHP公式サイトより https://www.tenshoku-stories.com/programming/about-php/ 近頃はコロナウイルス感染防止対策による外出自粛ムードのた …

Vue.jsのイメージ画像

プログラミング初心者におすすめなフレームワーク「Vue.js」超入門。

ロゴ画像引用元:https://github.com/vuejs/art 皆さんはVue.jsというフレームワークをご存知でしょうか。 Vue.jsはフロントエンジニアの界隈で人気急上昇中のJavaS …

[PR]:




[PR]:
ページのトップへ戻る