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

问题描述

使用Jupyter Notebook,当我从使用R内核的笔记本的R包(在我的情况下为Climatol)中执行功能时,消息将显示为输出,报告正在执行的过程。没什么新的。

enter image description here

使用的代码块是这样:

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

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

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

enter image description here

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

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",tinc="6 hour",expl=r['as.logical']("T"))

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

enter image description here

从Windows控制台运行代码时,也会显示这些消息,这使我认为不利的是Jupyter。话虽这么说,我如何使用Jupyter获得这些消息?

我正在使用Python 3.7,rpy2的版本是2.9.4

感谢您的帮助。

解决方法

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

如果有所改善,将在最新的rpy2版本中提供。例如,最新的rpy2版本是3.3.6。

否则,为了在Windows上获得更好的兼容性,请考虑在Docker中运行rpy2 / jupyter,或者在WSL(Linux的Windows子系统)中运行。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...