cx_Freezeを用いてWindows用のexeを作成した際の備忘録を書き残しておく。
実行したPython環境
Windows用のAnaconda経由でコマンドプロンプトを立ち上げて作業をしている。
Windows用のexeを作成する方法
下記のコマンドで作成可能。
python setup.py build
なお、作成後のexeだが、.dll
ファイルや lib
フォルダなどが同じフォルダ内に生成されるが、それらはそのままそこにおいておく必要がある。
(つまりシングルバイナリではない)
Widnows用のexeでエラーが発生したので対応した
最初、作成したWindows用のexeを実行したら下記のようなエラーが出た。
TypeError: add_docstring() argument 2 must be str, not None
エラーメッセージでググってみたが、numpy
のページが一番上に出てきた。
他にこれといった心当たりもなかったので excludes
に追加したところ、無事にエラーが解消でき、exeから起動ができた。
似たような事象はググっても出てこなかったが、Pythonのversionや環境などにもよるのだろうか?
なお他にも下記の記事を参考にいくつかの不要なライブラリを追加している。
[余談] cx_FreezeでMac用の実行ファイルを作る方法
Macで作成する方法については環境構築を含め、一通りこちらにまとめている。
cx_Freezeでクロスコンパイルは可能か?
ちなみにcx_Freeze
ではクロスコンパイルには現時点では対応していない。
つまりWindowsマシンでなければWindows用のバイナリは作れないし、MacマシンでなければMac用のバイナリは作れない。
(またMacについてはM1(Apple Silicon)でビルドしたバイナリはM1(Apple Silicon)でしか動作しないし、intelチップについても同様となる。)