为啥我的 Jupyter notebook 运行的是 ipython 内核而不是 python3?分组问题

Posted

技术标签:

【中文标题】为啥我的 Jupyter notebook 运行的是 ipython 内核而不是 python3?分组问题【英文标题】:Why is my Jupyter notebook running ipython kernel instead of python3? Problem with group bys为什么我的 Jupyter notebook 运行的是 ipython 内核而不是 python3?分组问题 【发布时间】:2021-09-28 06:49:14 【问题描述】:

我一直遇到这个问题,我的 Jupyter Lab 似乎正在运行“Python ipykernel”,而不仅仅是说运行“python 3”。本质上,它们都是 python 3 但是,我发现使用 ipykernel 有一些问题,我不知道为什么(例如简单的 pandas groupby 函数)。我觉得没有必要分享这个截图,希望有人能帮助我;如果需要,我仍然可以发布。

我想使用 Python 3 而不是 ipykernel

-------- 编辑-------------- 好吧,你们很多人都说不是这样。我决定提供屏幕截图来显示我的 groupby 函数的输出完全不同。

展览 A:当它只是说 Python3

时使用实验室

图表 B:当它只是说 Python 3 ipykernel

时使用实验室

相同的代码,相同的数据集,不同的输出?为什么?

【问题讨论】:

所有 jupyter-notebooks 只使用 ipython 内核,您可以通过 [IN] 和 [OUT] 清楚地看到它,原因是 Ipython 支持魔术线和魔术细胞语句以及更好地支持图像显示和比 python 本身更多的功能 对不起,我的意思是说 Jupyter Lab 而不是 Jupyter Notebook,但本质上,这不重要。我使用的只是说 Python 3。我的终端上有不同的环境。它按功能为简单的分组打印出不同的结果;完全相同的代码和完全相同的数据集:/ 我不认为这是内核的问题,您是否尝试在 python 上运行它并查看输出是否不同? Ipython 是 python 但具有更好的功能,两者都应该提供相同的输出,也许检查当您编写 py 文件而不是运行 ipynb 并获得不同的输出时是否获得单独的输出。 groupby 也是惰性求值的,因此请确保您在容器数据类型中重写它。您可能正在关注的教程也可能与旧 python 版本相关,它可能对新 python 有不同的作用,所以也要交叉检查 绝对不是内核的问题。 IPython 只是一个使用标准 Python 3 解释器的 shell 您好,感谢您的反馈。我没有遵循任何规则,这是一个普通的 CSV 数据。为了让大家有更好的理解,我会再次编辑问题。 【参考方案1】:

ipykernel 使用 Python 3。Jupyter(无论是笔记本、实验室还是任何其他接口)一直是使用 ipykernel 作为 Python 的默认内核。您可能会感到困惑,因为最新版本添加了(ipykernel) 标签(在this PR 中)以告知用户他们正在使用哪个内核。还有其他内核,例如 xeus-python。

高度,就像非常高度一样,ipykernel 不太可能是您的问题的根源。如果您认为它更适合您,您可以尝试将其降级到以前的版本:

pip install "ipykernel<6"

但实际上我首先建议您做相反的事情,这是为了确保您正在运行最新的 ipykernel 补丁版本:

pip install -U ipykernel

一旦您确认 ipykernel 不是问题的根源,我建议您使用您遇到问题的 pandas 代码的可重现示例提出更详细的问题。

【讨论】:

您好,感谢您尝试回答,但是问题仍然存在。我会再次编辑问题。 降级到较旧的 ipykernel 版本后问题是否仍然存在?

以上是关于为啥我的 Jupyter notebook 运行的是 ipython 内核而不是 python3?分组问题的主要内容,如果未能解决你的问题,请参考以下文章

为啥jupyter notebook代码运行一直没有反应

为啥jupyter notebook代码运行一直没有反应

为啥 Jupyter notebook 不从 VBA 运行?

为啥jupyter notebook代码运行一直没有反应

为啥jupyter notebook代码运行一直没有反应?

为啥在运行 jupyter notebook 时出现错误?