我尝试在一个单独的进程中运行'runserver'(和testserver),并在服务器仍在运行时读取main中的输出(我想做一些自动的e2e测试)。 我无法将写入标准输出存储到文件中。我使用的是python3.4和django1.7
from subprocess import Popen
from time import sleep
out = open('/tmp/o', 'w')
p = Popen(['./manage.py', 'runserver'] , stdout = out)
sleep(5)
out.flush()
p.terminate()
p.wait()
out.close()
print(open('/tmp/o').read())
# stdout file is empty
# Making sure the same command with stdout=None prints something
Popen(['./manage.py', 'runserver'] )
# prints output as expected
sleep(5)
p.terminate()
p.wait()
很明显我做错了什么,但我在文档或任何其他stackoverflow问题中找不到任何帮助。在
谢谢
米尔科
我在这里找到了答案: https://code.djangoproject.com/ticket/19593#comment:4
设置环境变量PYTHONUNBUFFERED修复了该问题
相关问题 更多 >
编程相关推荐