我在 Windows 7 上运行 Python 3.3。当我这样调用它时,我有一个成功的脚本:
c:\python33\python.exe my_script.py
Run Code Online (Sandbox Code Playgroud)
但是当我这样称呼它时失败了:
c:\python33\pythonw.exe my_script.py
Run Code Online (Sandbox Code Playgroud)
我想使用 定期启动它pythonw,因为它应该每小时运行一次,而且我不想每次启动时都看到丑陋的控制台窗口。
(我知道脚本失败是pythonw因为 (a.) 它立即退出,大约需要两分钟,并且 (b.) 它应该发送电子邮件,但它没有。)
我什至如何调试它?由于pythonw没有显示任何输出,我不知道该怎么做。
您可以将顶级代码包装在记录异常的 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
Run Code Online (Sandbox Code Playgroud)
您可以添加其他日志记录调用,可以创建一个日志记录对象来对配置等进行更细粒度的控制,但作为第一步,这就是我要做的。
如果程序仍然立即退出,则开始平分。删除一半代码,与删除另一半代码进行比较(允许依赖关系)。如果一半损坏而另一半工作(在一半代码丢失的限制内),那么您就知道在哪里继续搜索。
| 归档时间: |
|
| 查看次数: |
556 次 |
| 最近记录: |