2013-12-12 238 views
6

我的問題是py2exe正在運行時生成一個日誌文件。它不會生成,因爲我在運行程序時出錯。在日誌文件中有標準控制檯打印出來!Py2Exe生成日誌文件

我該怎麼做,沒有日誌文件會產生?

這裏我py2exe設置代碼:

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

在GUI應用程序,Py2exe重定向sys.stderr到一個日誌文件,並sys.stdout到忽略所有寫操作的對象。爲了避免日誌文件,在主模塊的頂部做在你的程序:

import sys 
sys.stderr = sys.stdout 

或者,讓py2exe使用console關鍵字,而不是windowssetup.py創建控制檯應用程序。

+2

在安裝文件或我的程序? – Tekkzz

+2

全部不起作用。 我可以從py2exe中刪除文件嗎? (boot_common.py)? – Tekkzz

+1

@ user3096402根據boot_common.py中的註釋,必須進行一些重定向,以避免最終由於寫入默認標準錯誤而導致的異常。 –

1

也許你可以刪除文件的內容!它可以工作,但是你必須看看你的程序是否需要在那裏定義一些函數,然後它可以得到錯誤!

-1

在聊天你說你想使用Python 3但Py2Exe不存在......爲什麼你不使用cx_Freeze?它會生成一個bin和一個.exe文件。您可以使用InnoSetup進行安裝,您的遊戲非常完美!