通过Windows运行时,Python脚本突然退出

时间:2017-10-21 17:52:50

标签: python stata exit

我从另一个程序(Stata)调用Python脚本,该程序具有调用操作系统的命令(shell / winexec)。反过来,这会打开一个系统窗口,您可以在其中看到正在运行的Python脚本。有时脚本运行得很好,有时它会在完成之前突然退出。我不知道为什么。我在IDLE中运行脚本时从未遇到过这个问题。我使用的是Windows和Python 3.4。

我尝试通过记录Python脚本来捕获错误,但是没有错误记录在那里。一切似乎都正常工作,直到程序退出(并不总是在同一点)。另外,我调用了7个脚本,其中只有两个有这个突然的退出问题(同样,它们总是通过IDLE运行良好)。我尝试更改我调用脚本的顺序,并使用shell而不是winexec,反之亦然。在这一点上,我甚至不知道该尝试什么。是操作系统吗?蟒蛇?塔塔?任何想法将不胜感激!

1 个答案:

答案 0 :(得分:0)

如果没有Martineau,我们无法理解这一点!如果有人有类似(看似)的神秘错误,则发布回答。

首先,我记录了错误,正如Martineau所说:

import logging

logging.basicConfig(filename='C:/MyLog.log',level=logging.DEBUG)

try:
    [all my code]

except Exception as e:
    logging.info(e)

这记录了错误:“charmap”编解码器无法编码位置448中的字符'\ u2013':字符映射到未定义“。出于某种原因,超出我的工资等级,IDLE和python.exe(在Python 3.4中)不会以相同的方式处理编码。这导致了问题(只有当出现特殊字符时才会出现问题,这就是为什么它不会每次都出现故障)。

我查找了编码问题的解决方案并找到了它here。基本上,我从Python 3.4升级到Python 3.6,编码问题消失了。