6

我在 Windows 7 上运行 Python 3.3。当我这样调用它时,我有一个成功的脚本:

c:\python33\python.exe my_script.py

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

c:\python33\pythonw.exe my_script.py

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

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

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

4

1 回答 1

3

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

import logging

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

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

如果程序仍然退出,开始二分。删除一半代码,比较删除另一半(允许依赖)。如果一半中断而另一半有效(在缺少一半代码的限制内),那么您就知道在哪里继续搜索。

于 2015-11-21T14:15:03.020 回答