使用 rpy2 的控制台输出在 Jupyter Notebook 中不起作用

Console output using rpy2 does not work in Jupyter Notebook

使用 Jupyter Notebook,当我从使用 R 内核的笔记本中执行 R 包(在我的例子中是 Climatol)中的函数时,消息显示为输出,报告正在完成的过程。没什么新鲜事。

使用的代码块是这样的:

library(maps)
library(mapdata)
library(climatol)

# Apply function (from R kernel)
homogen('Vel',2011,2012,tinc='6 hour',expl=TRUE)

现在,使用另一个笔记本的 Python 内核,当我通过 rpy2 应用相同的参数调用相同的函数时,我没有得到与上一张图片中出现的相同的消息.相反,我得到这个:

这次使用的代码块是这样的:

from rpy2.robjects import r
from rpy2.robjects.packages import importr

importr('maps')
importr('mapdata')
importr('climatol')

# Apply function ( from Python kernel)
r["homogen"]("Vel",2011,2012,tinc="6 hour",expl=r['as.logical']("T"))

我 运行 提到的来自 Sublime Text 的 Python 代码,在这种情况下显示消息:

运行 来自 Windows 控制台的代码时也会显示这些消息,这让我认为缺点是 Jupyter。也就是说,我如何使用 Jupyter 获取这些消息?

我用的是Python3.7,rpy2的版本是2.9.4

感谢您的帮助。

rpy2 在 Windows 上不完全支持。用于设置 R 输出处理方式的回调可能无法正常工作,这会导致您所观察到的问题。

If 这改进将出现在更新的 rpy2 版本中。例如,最新的 rpy2 版本是 3.3.6。

否则,为了在 Windows 上更好地兼容,请考虑 Docker 中的 运行 rpy2/jupyter,或者如果它在 WSL 中工作(Windows 子系统 Linux).