PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun
-
Upload
hrwatahiki -
Category
Software
-
view
770 -
download
5
description
Transcript of PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun
![Page 1: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/1.jpg)
Pythonで一般向け
スタンドアロンアプリを作ってみた
綿引 博之@hrwatahiki
PyConJP2014
![Page 2: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/2.jpg)
始める前に
今回作ったプログラムをダウンロードできます。
http://sourceforge.jp/projects/pydun/releases/
もしくは
「pydun 」
で検索してください。
![Page 3: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/3.jpg)
始める前に
● Windows通常版がおすすめです。
● Linux版はライブラリがいろいろ必要なので、
Windows版をWine上で動かすのが
おすすめです。
● Macは持ってないんで試してません。
![Page 4: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/4.jpg)
自己紹介
● 一応プログラマーです。● 茨城県の真ん中あたりに住んでます。
● 仕事ではPythonをほとんど使っていません。
● そもそも周りにPythonが分かる人がいない。
![Page 5: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/5.jpg)
Pythonの印象
● 書きやすい。● 読みやすい。
● すごいプログラマーがかっこいいWebサービスとか
作るのに使ってそう。
● 一般人が簡単なGUI付きアプリ作るのは
どうなのか?
![Page 6: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/6.jpg)
作ったアプリ
● 名前は「pydun」 (PYthon+DUNgeon)● 方眼紙の上に地図を描くのをコンピューター上で
やるアプリケーション
● わかる人向けに言うと、DSの「世界樹の迷宮」の
下画面
世界樹の迷宮ホームページより引用
![Page 7: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/7.jpg)
作った理由
● 作者がゲーム好き● 同じようなことをやるプログラムは既にいくつか
あるが、処理が重かったり機能が少なかったりで
不満があった。
● Pythonの勉強のため
● リハビリ
![Page 8: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/8.jpg)
アプリの目標
● Pythonでつくる(must)● プログラムのことがよくわからない
一般ユーザーでも使えるものにする(must)● セーブデータを互換性の高いものにする(should)● マルチプラットフォーム(may)● 自分が満足すること(???)
![Page 9: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/9.jpg)
GUIライブラリ
● Tkinter
→見た目が残念、資料があまりないので、×● PyGTK(PyGObject)
→昔作ったことがある(Cだけど)ので、×● wxPython
→よさそう。本も買った(読んでない)● PyQt or PySide (Qt)
→よさそう。そういえば・・・
![Page 10: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/10.jpg)
磯 蘭水さんがPyConJP2011で
「PyQtではじめるGUIプログラミング」
っていうのやってた。
Qt にしよう!!!
![Page 11: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/11.jpg)
PyQt と PySide
● どちらもQtのPythonバインディング
● PyQtはGPL● PySideはLGPL● 作ったのはNokia(当時のQt所有者)● あまり違いはない。
(と思う。ちゃんとは調べてません。)● 後発のPySideにしました。
● 細かく制御する必要があるため、
GUIデザイナーは使いませんでした。
![Page 12: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/12.jpg)
セーブファイル
● yamlにしました。
→テキストで、人間が読みやすい
→セーブファイル単体でも、地図として読めます
![Page 13: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/13.jpg)
Windows用実行ファイルを作る
● 作成当時(2012年頃)の話です。
Py2exeはバージョンアップしてます。
● Py2exe
→ いろいろできるけど、設定ファイルを作るのが大変
● cx_Freeze● PyInstaller
→ドキュメントが分かりやすい(と思う)
コマンド1行で実行ファイルができる。
Python3以降には対応していない。
● PyInstallerにしました。
![Page 14: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/14.jpg)
できた!
![Page 15: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/15.jpg)
反省
● ソースが汚い、コメントが少ない。
● Python2になってしまった(PyInstallerを使うため)。● プログラミングに励むあまり、
ゲームをやる気力がなくなってしまった。
![Page 16: PyConJP2014 LT Python で一般向けスタンドアロンアプリを作ってみた Pydun](https://reader033.fdocument.pub/reader033/viewer/2022050921/556252fcd8b42aa52d8b51ad/html5/thumbnails/16.jpg)
まとめ
● PythonとPySideを使って、スタンドアロンアプリを作りました。
● 楽しかったです。
● Python3に対応できるよう、よく考えよう。
● ご意見いただければ幸いです。(@hrwatahiki)