2013-12-12 43 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进行安装,您的游戏非常完美!