メモ書き:python.exe() (pyinstaller)

0:無駄話

毎回毎回python呼び出すの面倒なのでexe化しようかなぁって思い立ったので軽く調べたり調べなかったりしました。

世のプログラミングをやっている人がどうかなんて私には分かりませんが、私にプログラミングの世界を勧めてくれた人は「プログラミングなんてめんどくさがりがめんどいことをやらせるためにやってんよ」と言っていました。面倒なことだったりやりたくないことは勝手に機械どもにやらせておくに限るんです。
ね?そうだよね?PLB-279-T?

まあいいや。

1:インストール(本題ここから)

この記事はpyinstallerを使った時の記憶です。

pip install pyinstaller

2:実行

pyinstaller <変換pythonファイル> --name <出力exeファイル名> --onefile --icon <アイコンファイル>

どうやらアイコンファイルを指定できるみたい。

3:各種エラー

3-1:そもそもインストールできないエラーがあるらしい。

qiita.com
記事を読んだ感じ、Anaconda環境でconda installとpip installの両方を使ったりしてるとインストールできないみたい。今回の船井には影響なかったし伝聞に過ぎないけど一応記憶。

3-2:The 'typing' package is an obsolete backport of a standard library package and is incompatible with PyInstaller. Please `pip uninstall typing` then try again.

要するに「その'typing'っていうパッケージあるじゃん?それって、PyInstallerとの互換性ねぇンだわ。消せ。」って言われたわけです。じゃあ消すか。

なお、消す以外になんか方法あったりしない?と思って調べたらこんなの出てきた。
stackoverflow.com
草。

4:その他記憶

  • 出力されるexeファイルはdist下に生成される
  • カレントディレクトリ関連のコードを含んでいる場合、当然そのdistがカレントディレクトリになるっぽい
  • 別にdistからexeファイルを移動させても動く。この場合、カレントディレクトリはその移動させた先になるっぽい。
  • 今回はtqdmとか使ってたものをexeにした。コマンドプロンプトの画面でtqdmが表示されてるのでexe化するならこの辺も弄りたいよね……?って気持ちになった。
  • distやbuildフォルダを削除しても普通に動くっぽい