2013-12-12 40 views
6

私の問題は、実行時にpy2exeがログファイルを生成していることです。プログラムの実行中にエラーが発生するため、生成されません。ログファイルには、標準のコンソール出力があります!Py2Exeログファイルを生成します

ログファイルが生成されないようにするにはどうすればよいですか?

ここに私のpy2exeセットアップコード:GUIアプリケーションで

from distutils.core import setup 
import py2exe, sys, os 
sys.argv.append('py2exe') 
setup(
    options = {'py2exe': {'bundle_files': 1, 'compressed': True}}, 
    windows = [{'script': "run.py"}], 
    zipfile = None 
) 
+0

エラートレースバックも含める必要があります。 –

+2

エラーはありません! ログファイルを無効にしたいだけです... – Tekkzz

+0

あなたのスクリプトに 'sys.stdout = os.devnull'を設定するか、コマンドラインリダイレクトを使って同等の処理を行うことができます。 – martineau

答えて

4

、Py2exeは、すべての書き込みを無視したオブジェクトにログファイルとsys.stdoutsys.stderrをリダイレクトします。ログファイルを避けるために、メインモジュールの上部にあなたのプログラムでこれを行う:

import sys 
sys.stderr = sys.stdout 

あるいは、py2exeはsetup.pyに代わりwindowsconsoleキーワードを使って、コンソールアプリケーションを作成してみましょう。

+2

? – Tekkzz

+2

すべてが機能しません。 py2exeからファイルを削除できますか? (boot_common.py)? – Tekkzz

+1

@ user3096402 boot_common.pyのコメントによれば、最終的にデフォルトのstderrに書き込むことによって引き起こされる例外を避けるために、いくつかのリダイレクトが必要です。 –

1

おそらくファイルの内容を削除できます。それは動作することができますが、あなたのプログラムに定義されているいくつかの関数が必要であるかどうかを確認しなければなりません。

-1

あなたはPython 3を使いたいと言っていましたが、Py2Exeはそこにありません...なぜcx_Freezeを使用しないのですか? binと.exeファイルが生成されます。あなたはInnoSetupでインストールすることができ、あなたは完璧です!

関連する問題