Windows IIS服务器上的Python3。需要无缓冲输出实时输出

时间:2019-02-13 02:28:07

标签: python python-3.x iis cgi

这是我下面的代码,我无法使输出实时显示,浏览器必须等待。我已经阅读了压缩文件,并且可以在同一服务器上使用$ | = 1与Perl一起使用

#!"C:\Python37\python.exe" -u
import time
import sys


print ("Content-type:text/html\r\n")
print ("<HTML>")

for i in range (30):
    time.sleep(1)
    sys.stdout.flush()
    print ('!')

1 个答案:

答案 0 :(得分:0)

根据您的描述,建议您尝试使用以下代码来禁用具有python打印功能的缓冲区。

class Unbuffered(object):
   def __init__(self, stream):
       self.stream = stream
   def write(self, data):
       self.stream.write(data)
       self.stream.flush()
   def writelines(self, datas):
       self.stream.writelines(datas)
       self.stream.flush()
   def __getattr__(self, attr):
       return getattr(self.stream, attr)

import sys
sys.stdout = Unbuffered(sys.stdout)
print {Hello}

然后,我建议您可以按照以下答案在IIS中禁用此输出缓冲。

https://www.experts-exchange.com/questions/28964536/Disable-output-buffering-in-IIS8-for-CGI-exe-file-output.html