サーバレス練習帳

着眼大局着手小局

python/flaskのexe化のバージョン指定

python3.6.8でexe化したものは起動時次の様なメッセージが出て上手く動きませんでした。
f:id:urbanplanner:20201120162822p:plain
通常のpythonでの起動やコンソールありのexe起動ではこのメッセージは出ないのですが、
次のスクリプトのような感じでノンコンソールでexe化すると、上記のメッセージが出てしまうようです。

pyinstaller --onefile --noconsole --icon=logo.ico ls2.py

そこで・・・

python3.6.8から3.7.7に変更し、
pyinstallerを4.0で指定したところ・・・
ノンコンソール状態でexe化したflaskが正常に動作するようになりました。
次のバージョンで動かせました。

python --version
Python 3.7.7

pip freeze
altgraph==0.17
click==7.1.2
Flask==1.1.2
Flask-Cors==3.0.9
future==0.18.2
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
pefile==2019.4.18
pyinstaller==4.0
pyinstaller-hooks-contrib==2020.10
pywin32-ctypes==0.2.0
six==1.15.0
Werkzeug==1.0.1

ちなみに、pyinstallerでexe化したプログラムの「failed to execute script」は難物で、とりあえず、exe状態でエラーになるとなんでもかんでも「failed to execute script」が出てくるようです。

(追記)
pip install pyinstaller==4.0
で、インストールできそう。