刚刚发现以下内容。通过笔记本运行
import
.echo("test")
输出:
/home/user/anaconda3/envs/p36/lib/python3.6/site-packages//utils.py in echo(message, file, nl, err, color)
257
258 if message:
--> 259 file.write(message)
260 file.flush()
261
UnsupportedOperation: not writable
有人以前见过这个并知道如何解决吗?我必须通过使用 .所以不可能。
更新: 对 click 的 jupyter 分支的提交解决了该问题: https://github.com/elgalu/click/commit/1cb7aaba8c9dd6ec760d3e7e414d0b4e5f788543#diff-d17772ee4f65879b69a53dbc4b3d42bd
最佳答案
我认为 Jupyter 劫持并锁定了 STDOUT
/STDERR
(至少是一次 click
尝试使用的),如果您不这样做不向 click.echo()
提供流,它将尝试写入 STDOUT
/STDERR
,因此会出现错误。
您可以通过自己传递像 STDOUT
这样的输出流来解决这个问题:
import click
import sys
click.echo("test", sys.stdout)
# test
关于python - 点击在 jupyter 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47773001/