蛇使いな彼女BLOG
【第51回】 pySimpleGUIでアプリ作成 #3ーPythonプログラムのアプリ化
2022.02.04
皆さんこんにちは!
今回はPythonプログラムをデスクトップアプリ(.exe形式)に変換する方法をご紹介します☆
私が試した結果、途中エラーが出てうまくいかない事も多々あったので、そのエラー解消方法も含めた防備録です(*^_^*)
まず、前提ですが私の開発環境はAnacondaです。
エグゼ(.exe)化にはpyinstallerを使います。流れとしては、
1.AnacondaPromptで pip install pyinstaller して、ライブラリをインストール
2.AnacondaPrompt上で、cdコマンドを使ってアプリ化したいファイルの場所に移動する
3.pyinstaller △△△.py --onefile –noconsole で△△△.pyを実行ファイルに変換
1.はインストールだけなので、2.から順に進めていきますね。
一応メモしておきますが、Conda環境がアクティブであれば、コマンドプロンプトを開くと(base)が表示されます。これが入力受付可能な状態です。
アクティブになってない場合はこの後の処理が出来ないので気をつけてください。
(base) C:\Users\User\Documents> cd..
cdコマンドでディレクトリの移動ができます「..」で1つ前のディレクトリに戻ります。
“cdディレクトリ名“でエグゼ化したいファイルが存在するディレクトリまで移動します。
(↑画像では間違って階層が一つ浅いところでエグゼ化しているのですが、下記エラーに紛れてしまって気づかなかった(笑))
移動できたら、pyinstaller exefile.py --onefile (--noconsole)でエグゼ化を行います…が!
The 'typing' package is an obsolete backport of a standard library package and is incompatible with PyInstaller.Please `conda remove typing` then try again.
の文字が...。
どうやらTypingというライブラリは廃止されており、とpyinstallerの互換性が無いので、「conda remove typring」(Anacondaからtypringライブラリを消去)してから再度実行してください。というメッセージらしい...。
そこで、気を取り直して言われたとおりtypringを消去しようとしたのですが
「パッケージが見つからない」と怒られました(笑)
そこでAnacondaのインストール済みパッケージ(site-packages)の確認をしてみると...
再実行↓
やった!動いたー!!!(感動)
pyinstaller ファイル名(.py) --onefile --noconsole
--onefile は実行ファイルを1つにまとめるオプション(これは書いた方がいい)、
--noconsoleはアプリ起動時にコマンドプロンプトのコンソール画面を表示させないオプション設定です。
実行2回目以降はこのオプションも追加して試してます(笑)
これで実行ファイル完成した!!!と思った矢先、(画像には掲載しきれていませんが)最終行にRuntimeError: No metadata path found for distribution 'greenlet'.「配布用のメタデータパスが見つかりません」なるエラーがでました(T-T)
このエラーについて調べると、
pip install --ignore-installed greenlet のコマンドで解決できるらしいので早速実行してから、再度エグゼ化してみました↓
completed successfully!!…と、い・う・こ・と・は!
やっっっっっとできましたー(;.;)✨!!
コマンド実行後に、distフォルダーが追加されているので、その中に.exeファイルが在れば成功です♪
このexeファイルをダブルクリックすると、Pythonプログラムが実行されます☆
後日談ですが、この実行ファイルはデスクトップPCで作った物なので、別のパソコンで開いたときにちゃんとプログラム実行されるのかどうか試してみたくなり、手持ちのノートPCにzipファイルで送ってみたんですが…
結果、うまく動きませんでした(T_T)
なぜなのか原因が分かったらまた記事をアップしたいと思います(;´Д`)
では今日はここまで!