2016-07-15 12 views
0

実行時にコンソールにいくつかのものを印刷するアプリケーションがあります。しかし、スタンドアロンとして、実行ファイルはコンソールに何も印刷しませんか?cx_Freezeはコンソールに印刷しません

setup.pyスクリプトは次のようになります。コマンドラインで

import sys 
from cx_Freeze import setup, Executable 

setup(
    name = "My App", 
    version = "1.0", 
    options = { 
     "build_exe" : { 
      "include_files": ['MyImgs'] 
     }, 
    }, 
    executables = [Executable("Main.py", base = "Win32GUI")] 
) 

私は、次のコマンドを実行します。py setup.py build

私は、実行可能ファイルを見つけて実行します:Main.exe

私が何らかの理由で紛失しているものは、いずれもprint()です。このためにセットアップスクリプトに含める必要があるものはありますか?

答えて

2

"Win32GUI"ベースを使用する場合、Windowsはstdoutとstderrを使用できません。あなた自身を他の場所(ファイルなど)にリダイレクトする必要があります。 "コンソール"ベースを使用すると、stdoutとstderrが利用可能になり、print()は期待どおりに動作しますが、最初にコンソールからコンソールを実行していないと、コンソールが作成されます。

+0

「ベース」とは正確に何ですか? 'base =" Console "を設定するとWindowsとMacの両方でこの実行ファイルを実行できます – Max

+1

" base "の設定は、Pythonコードを実行するベースコードを定義します(ソースのソース/ベースセクションを参照)。コンソールはすべてのプラットフォームで標準です。 Windowsのみが「コンソール」と「GUI」を区別します。はい、「コンソール」を使用すると、WindowsとMacの両方で実行できます。 –

関連する問題