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

问题描述 投票:0回答:1

这是我下面的代码我无法使输出生效,浏览器必须等待。我已经阅读了压缩内容,这可以在同一台服务器上使用$ | = 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 ('!')
python python-3.x iis cgi
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.