【问题标题】:Py2Exe generate log filePy2Exe 生成日志文件
【发布时间】:2013-12-12 17:14:33
【问题描述】:

我的问题是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
)

【问题讨论】:

  • 你也应该包含错误回溯。
  • 没有错误!我只想禁用日志文件...
  • 你可以在你的脚本中设置sys.stdout = os.devnull——或者通过命令行重定向来做同样的事情。
  • 不工作。我将您的代码设置为文件的开头......它仍然会产生一个日志文件:[I 13-12-12 18:40:12] >>> 在 127.0.0.1:21 上启动 FTP 服务器,pid=2508 [I 13-12-12 18:40:12] 伪装(NAT)地址:无 [I 13-12-12 18:40:12] 被动端口:无
  • 尝试使用sys.stderr = sys.stdout = os.devnull。 (另请注意,要让我收到您的回复,您需要在评论中的某处添加@martineau)。

标签: python logging py2exe distutils


【解决方案1】:

在 GUI 应用程序中,Py2exe 将 sys.stderr 重定向到日志文件,并将 sys.stdout 重定向到忽略所有写入的对象。要避免日志文件,请在主模块顶部的程序中执行此操作:

import sys
sys.stderr = sys.stdout

或者,让 py2exe 使用 console 关键字而不是 setup.py 中的 windows 创建控制台应用程序。

【讨论】:

  • 在设置文件中还是在我的程序中?
  • 一切都不起作用。我可以从py2exe中删除文件吗? (boot_common.py)?
  • @user3096402 根据 boot_common.py 中的 cmets,需要进行一些重定向以避免最终由写入默认 stderr 引起的异常。
  • 我必须做什么?
【解决方案2】:

也许您可以删除文件的内容!它可以工作,但你必须看看你的程序是否需要在那里定义一些函数,然后它会出错!

【讨论】:

    【解决方案3】:

    在聊天中你说你想使用 Python 3 但 Py2Exe 不存在......你为什么不使用 cx_Freeze?它会生成一个 bin 和一个 .exe 文件。您可以使用 InnoSetup 进行安装,您的游戏就完美了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 2021-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多