python - 即使我没有打印,jupyter 也会打印太多输出
问题描述
最近 Jupyter(笔记本和实验室)开始打印任何东西,就好像我分别执行每一行一样。它曾经打印出执行的最后一行的输出,但现在它会打印所有内容,如下所示。
我可以通过这样做来抑制这一点,例如,_ = axs[0].plot(~~~)
但是在每行的末尾加上分号并没有帮助。我已经重新安装了 Anaconda,但没有任何改变。
我在 MBP 2018 15" 上使用 macOS 10.14.6,在 MS Edge 87.0.664.47 上使用 Python 3.8(基本上是当前 Anaconda 安装的所有内容,无需任何额外安装)。
编辑: 更准确地说,任何具有未分配给变量的返回值的代码行总是打印。以前,每行仅在代码的最后一行时才被“打印”。这种奇怪的行为不管包,比如 numpy 或 pandas 都会发生:
(仅供参考,可复制的文字:
import numpy as np
import pandas as pd
def add_with_return(arr):
arr += 1
return arr
a = np.arange(10)
b = pd.DataFrame(dict(value=a))
a, b
add_with_return(a)
c = np.linspace(0, 1)
)
编辑2:
我使用的软件包版本
$ jupyter --version
jupyter core : 4.6.3
jupyter-notebook : 6.1.4
qtconsole : 4.7.7
ipython : 7.19.0
ipykernel : 5.3.4
jupyter client : 6.1.7
jupyter lab : 2.2.6
nbconvert : 6.0.7
ipywidgets : 7.5.1
nbformat : 5.0.8
traitlets : 5.0.5
编辑 3:
我想我终于找到了一个解决方法:
放在代码单元格的最后一行的;
末尾。
示例:在单元格末尾添加一条虚拟线None;
以使所有不需要的打印静音。
但是,一旦您在代码单元格的最后一行有任何没有;
在其末尾的代码行,它就会再次打印所有内容(无论您;
在其他行的末尾是否有)
我想听听是否有更好的解决方案。(谁会一直想放分号......?)
解决方案
在 IPython 中,有一个选项InteractiveShell.ast_node_interactivity
可以设置为“all”、“last”、“last_expr”、“none”或“last_expr_or_assign”。默认设置是“last_expr”。在此处的 IPython 文档中找到更多信息。
当我在 Jupyter 单元格中键入以下内容时,以模仿您的情况。
InteractiveShell.ast_node_interactivity = 'all'
您提供的代码:
import numpy as np
import pandas as pd
def add_with_return(arr):
arr += 1
return arr
a = np.arange(10)
b = pd.DataFrame(dict(value=a))
a, b
add_with_return(a)
c = np.linspace(0, 1)
它提供以下输出:
(array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),
value
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9)
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
最后使用以下命令将其恢复到以前的状态。
InteractiveShell.ast_node_interactivity = 'last_expr'
推荐阅读
- iis - 如何使用带有 Windows 身份验证的 URL 重写
- c++ - 包含对自身或其他结构类型的引用的结构?
- java - java - 如何从第一个“to”中删除值,直到第一个逗号(,)在java中的字符串
- java - Java、Cucumber 和 Selenium:navigate().to() 的问题
- php - Laravel Validation 不会抛出真正错误的字段的错误
- android - 在 Android Studio/虚拟机上安装实际的 android 设备而不仅仅是皮肤
- reactjs - 获取分页反应的firestore收集记录计数
- graphql - 如何在 graphQL 中使用 where 参数?
- python - 在 Azure 自动化中安装 Python 2 包时出错
- javascript - 收集消息的问题