Open otaniteruaki opened 3 years ago
https://www.youtube.com/watch?v=nuRDtyaOt_Y
・基本はCUIとGUIの2パターン ・顧客はGUIはマストで納品してもらえると思っている
・Kivy:独自のため使いづらい ・Tkinter:独自のため使いづらい ・Eel:HTMLベースのため使いやすい
・インストール: pip install eel ・構成 - フロントエンド:Html/CSS5/javascript - バックエンド:Python ・フロントとバックの連携 - eel.expose で関数に付与することでpythonとjavascriptで連携できる ・CSSによる装飾が可能 - Bootstrapを活用してリッチに ・顧客への納品方法 - 実行形式に変換して提供 - Python -m eel <起動ファイル> <htmlフォルダ> --onefile
以下のコマンドを実行するとエラーが発生する
(venv) TO-mac:Lesson3 teruaki.otani$ python -m eel view.py .html/ --onefile
File "/Users/teruaki.otani/Desktop/Python_menta/Lesson3/venv/lib/python3.8/site-packages/PyInstaller/building/build_main.py", line 476, in assemble
self._check_python_library(self.binaries)
File "/Users/teruaki.otani/Desktop/Python_menta/Lesson3/venv/lib/python3.8/site-packages/PyInstaller/building/build_main.py", line 581, in _check_python_library
python_lib = bindepend.get_python_library_path()
File "/Users/teruaki.otani/Desktop/Python_menta/Lesson3/venv/lib/python3.8/site-packages/PyInstaller/depend/bindepend.py", line 956, in get_python_library_path
raise IOError(msg)
OSError: Python library not found: libpython3.8m.dylib, Python, Python3, libpython3.8.dylib, .Python
This would mean your Python installation doesn't come with proper library files.
This usually happens by missing development package, or unsuitable build parameters of Python installation.
* On Debian/Ubuntu, you would need to install Python development packages
* apt-get install python3-dev
* apt-get install python-dev
* If you're building Python by yourself, please rebuild your Python with `--enable-shared` (or, `--enable-framework` on Darwin)
pyenvでPythonをインストールするときのオプションに「--enable-shared」を使用する必要があるらしい。
1)以下のサイトを参考に対処した
https://qiita.com/kanedaq/items/8bb33c135fd89991d548
2)しかし、同様のエラーが出た。
■原因
以下のコマンドでpythonのバージョンに差分が発生するのが問題か? pyenv versionsでバージョン確認するのと、普通にpython -Vでのバージョンが異なって表示されますが、どちらのが優先して適用されるのか?
(venv) TO-mac:Lesson3 $ pyenv global
3.7.4
(venv) TO-mac:Lesson3 $ pyenv versions
system
3.6.5
* 3.7.4 (set by /Users/TO/.pyenv/version)
3.8.3
(venv) TO-mac:Lesson3 $ python -V
Python 3.8.3
■結論
https://qiita.com/koooooo/items/b21d87ffe2b56d0c589b
この記事の、「pyenvでのpythonのバージョンがpython -vと違う時の対処法」で記載の方法で、上記の原因を解消できた。
やはり、1)の時点ではpyenvのバージョンが更新されたが、実際はデフォルトのpythonが優先して使用されていたので、 再インストールしてもそれが反映されていなかったのだ。
■解決方法
https://qiita.com/koooooo/items/b21d87ffe2b56d0c589b
この記事の、「pyenvでのpythonのバージョンがpython -vと違う時の対処法」で記載の方法で、上記の原因を解消できるはず。
実際は、PCを再起動したら解消した?
3)改めて(1)の手順を実行すると、正しく処理が反映された!!!
■準備 GUIの全体像について https://www.youtube.com/watch?v=nuRDtyaOt_Y
【初心者向け】CUIとGUIの違いとその特徴。なぜ使い分ける必要があるのか。 https://tcd-theme.com/2019/12/cui-gui.html?gclid=Cj0KCQjws-OEBhCkARIsAPhOkIYelqPKH59iZAZKSuLIOsMTydHZOjVIZf9rTp0VM_rKB54fAtDwPBkaAk5gEALw_wcB
[Python] EelをつかってHTML/CSS/JavaScriptでGUIを構築 https://qiita.com/inoory/items/f431c581332c8d500a3b
■課題 https://github.com/marutoraman/study-03-desktop-01
デスクトップアプリ作成課題 検索課題で作った検索ツールをデスクトップアプリとして 操作性を高め、より価値の高いものにするための課題です。 これを習得すると+月2万円ほどの収入増加が見込めます。
view.pyがメインの実行ファイルです。これを実行するとデスクトップアプリが 表示されます。
説明:https://youtu.be/UsgiZGYkZrY 参考サイト:https://qiita.com/inoory/items/f431c581332c8d500a3b 完成形:https://youtu.be/wBi6_DcfRGQ
1 HTML使い検索ワード入力と検索ボタンを作ってください htmlフォルダ内のindex.htmlに対してHTMLタグを用いて追加してください
2 検索ワード入力が空だったらアラートを表示させ、検索はしないようにしてください
3 検索結果をデスクトップアプリの画面に表示できるようにtextareaタグを使って ログ表示領域を作成してください。
4 作成したログ表示領域にkimetsu_searchの結果を表示できるようにしてください
5 ログ表示領域が小さいので大きく表示できるようにclassを定義して、style.cssに処理を記述してください
6 CSVファイルの保存先をHTML画面から指定できるようにしてください
7 Pyinstallerを使って、1つの実行可能ファイルにパッケージ化してみよう。 pipでインストール後に以下コマンドを実行してみよう。 distフォルダに実行可能フィイルが格納されます。 顧客提供時は、このファイルを提供することでpythonのインストールは不要になります。 python -m eel <はじめに起動するpyファイル> <htmlのフォルダ名> --onefile
おまけ bootstrapを適用して、キレイな画面を作成してみてください。 以下のサイトのスターターテンプレートを適用し、レイアウトを調整してみてください。 https://getbootstrap.jp/docs/4.3/getting-started/introduction/