Python脚本停止使用BEX错误

时间:2017-11-01 08:03:47

标签: python windows powershell

我在Windows上运行了一个Python脚本,它基本上是RESTful接口客户端,与SQL数据库有多个连接。它必须在一段时间内重新启动(例如,15分钟)。为此,我将代码包含在函数os.execl()的循环中。我使用以下格式从PowerShell运行脚本:

PS C:\test> python.exe .\script.pyc

脚本本身(未披露实施细节):

import base64
import datetime
import glob
import logging
import os
import socket
import sys
import threading
import time
import pyodbc
import binascii
import configparser
import codecs
import requests
from collections import namedtuple
from binascii import unhexlify, b2a_base64

FORMAT = '%(asctime)-15s %(levelname)-10s %(message)s'
logging.basicConfig(format=FORMAT, level=logging.INFO)
log = logging.getLogger()

# some class declarations here

if __name__ == '__main__':

    # Initializing counter for time
    timeLast = time.time()

    while 1:
        timeCurrent = time.time()
        if ((timeCurrent - timeLast) > resetTime):
            timeLast = timeCurrent
            os.execl(sys.executable, sys.executable, * sys.argv)

        try:        
            # Fetching data from DB
            # Processing data

        except Exception as e:
            log.error(repr(e))
            time.sleep(1)

# Wait for user input before exiting
sys.stdin.read()

但是,运行几天后脚本停止使用以下缓冲区溢出异常(BEX):

  

错误应用程序python.exe,版本3.6.3150.1013,时间戳   0x59d3c90d,故障模块ucrtbase.dll,版本10.0.10586.1171,   时间戳0x59ae5046,异常代码0xc0000417,故障偏移   0x000834c4,进程ID 0xecc,应用程序启动时间   0x01d351c6613b826e。

此外,我注意到PowerShell控制台窗口不刷新窗口内容,除非我将其窗口置于焦点并按向下箭头。也许是一些不同的问题。

环境:

  • Windows Server Standard SP2(32位)
  • PowerShell 2.0
  • Python 3.6.3

1 个答案:

答案 0 :(得分:0)

似乎问题与脚本在PowerShell中运行的事实有关。在Python Shell中运行脚本时,没有观察到它。