Python脚本在pythonw下失败



我在Windows7上运行Python 3.3。当我这样称呼它时,我有一个成功的脚本:

c:python33python.exe my_script.py

但当我这样称呼它时失败了:

c:python33pythonw.exe my_script.py

我想定期使用pythonw启动它,因为它应该每小时运行一次,我不想每次启动时都看到丑陋的控制台窗口。

(我知道脚本在pythonw下失败,因为(a.)它会立即退出,而这大约需要两分钟,(b.)它应该发送一封电子邮件,但它没有。)

我该如何调试它?由于pythonw没有显示任何输出,我不知道该怎么办。

您可以将顶层代码包装在一个记录异常的try-except处理程序中:

import logging
logging.basicConfig(filename=r'C:TEMPdebug.log', level=logging.DEBUG)
try:
    # top-level code
except:
    logging.exception('Danger, Robinson!')
    raise

你可以添加其他日志记录调用,你可以创建一个日志记录对象来对配置进行更细粒度的控制,等等,但作为的第一步,这就是我要做的

如果程序仍然存在,请开始平分。删除一半的代码,比较删除另一半的代码(考虑到依赖关系)。如果一半中断,另一半工作(在一半代码丢失的限制范围内),那么您知道在哪里继续搜索。

最新更新