问题描述
使用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",tinc="6 hour",expl=r['as.logical']("T"))
我从Sublime Text运行了提到的Python代码,在这种情况下,显示消息:
从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子系统)中运行。