【发布时间】:2021-03-03 08:45:15
【问题描述】:
在我的文件“wrapper.py”中,我调用了一个子进程并将其输出实时打印到标准输出。如果我从控制台调用 python 脚本,这工作得很好。但是,当从 jupyter notebook 调用它时,代码会挂在 proc.stdout.readline() 行。所有以前的打印语句都可以正常工作..
proc = subprocess.Popen(["calc", "input.txt"], cwd=__dir, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
while True:
out = proc.stdout.readline().decode("utf-8")
err = proc.stderr.readline().decode("utf-8")
if out == '' and err == '' and proc.poll() is not None:
break
if out:
print("::::%s"%(out), end='')
if err:
print("::::%s"%(err), end='', file=sys.stderr)
rc = proc.poll()
print("---> returns %s"%(rc))
有人知道如何解决这个问题吗?
【问题讨论】:
-
检查this是否有帮助。
-
是的,它有帮助!
标签: python jupyter-notebook subprocess ipython