Notice: 関数 _load_textdomain_just_in_time が誤って呼び出されました。cocoon ドメインの翻訳の読み込みが早すぎました。これは通常、プラグインまたはテーマの一部のコードが早すぎるタイミングで実行されていることを示しています。翻訳は init アクション以降で読み込む必要があります。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 6.7.0 で追加されました) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6121
cx-Freeze input()でエラーが・・その対策 | 診療放射線技師がPythonをはじめました。

cx-Freeze input()でエラーが・・その対策

cx_Freeze

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

コンソールアプリケーション

という事になるそうです。


どなたかの役にたてば幸いです。

もしよろしければ、「いいね」押してくださいね。

タイトルとURLをコピーしました