单击在 jupyter 中不起作用
Click not working in jupyter
刚找到以下内容。 运行 通过笔记本
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 3 的情况下,我想在 Jupyter notebook 中和终端中的代码为 运行 时保留消息的点击样式。我是这样处理的:
from io import UnsupportedOperation
import click
item = 'Your Name'
message = click.style('"{}"'.format(item), fg='red', bold=True)
try:
click.echo(message)
except UnsupportedOperation as err:
print('Error: "{}"'.format(err))
print(message)
笔记本中保留的颜色:
刚找到以下内容。 运行 通过笔记本
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 3 的情况下,我想在 Jupyter notebook 中和终端中的代码为 运行 时保留消息的点击样式。我是这样处理的:
from io import UnsupportedOperation
import click
item = 'Your Name'
message = click.style('"{}"'.format(item), fg='red', bold=True)
try:
click.echo(message)
except UnsupportedOperation as err:
print('Error: "{}"'.format(err))
print(message)
笔记本中保留的颜色: