cx-Freezeを用いてexe化をした際にエラーが出てしまった件
exe化した際にはエラーは出ていなかったのですが、実際exeファイルを実行すると以下のエラーが発生
RuntimeError: input(): lost sys.stdin というエラーは、Pythonのinput()関数が実行されるときに標準入力が利用できないことが原因のようです。
対策
ということで、簡潔に言うと
setup.pyで以下の部分を修正します。
import sys
from cx_Freeze import setup, Executable
build_exe_options = {
# 取り込みたいパッケージ
"packages": ["pydicom","fileselect"],
# 除外したいパッケージ
"excludes": ["matplotlib","numpy","seaborn","opencv-python"],
}
base = None
if sys.platform == "win32":
base = "Win32GUI" #←ここをNoneに変更
#base = None
setup(
# アプリの名前
name="Application Name",
version="0.1",
# アプリの説明
description="explanation",
options={
"build_exe": build_exe_options,
},
executables=[
Executable(
# 実行ファイル名を記載します。
script="filename.py",
base=base,
),
],
)
13行目の base = “Win32GUI”を
base = None
に変更するだけ。
baseとは
変更した設定のbaseとはアプリケーションの種類の設定になるようです。
‘Win32GUI’
GUIアプリケーションを用いたものとなり、コンソールは使用できないようになるそうです。
None
コンソールアプリケーション
という事になるそうです。
どなたかの役にたてば幸いです。
もしよろしければ、「いいね」押してくださいね。