如何在 Azure 笔记本中使用 rmagic?

How to use rmagic in Azure Notebooks?

我正在尝试从 R 代码片段中获取一些数据到 Azure Python 3 Jupyter notebook(托管可在 http://notebooks.azure.com 免费获得)。

我在 Python 3 笔记本中尝试了以下操作:

%load_ext rmagic

然后尝试嵌入 R:

%%R -o x
x <- 1

然后

x

这里我得到 Python 错误:name 'x' is not defined – 见下图。将 R 嵌入 Python3 并使用 Azure Notebooks 交换数据的正确方法是什么?

Azure Notebooks http://nogin.info/R2Py.png

@DmitryNogin,问题重现成功。根据下面 here 的描述,您现在需要在 jupyter notebook 中使用 %load_ext rpy2.ipython 而不是 %load_ext rmagic

The rmagic extension has been moved to rpy2 as rpy2.interactive.ipython.

但是,当我在 notebook 中尝试 %load_ext rpy2.ipython 时,出现了以下其他错误。

ImportError: libRblas.so: cannot open shared object file: No such file or directory

我搜索了一个解决方案,它需要在 Azure 笔记本服务器上设置环境变量 LD_LIBRARY_PATHexport LD_LIBRARY_PATH=/usr/lib64/MR0-3.3.0/R-3.3.0/lib/R/lib(我通过命令 which R 找到的路径值)。但是,主机 Ubuntu OS 未安装 vivim 并且我不知道终端中 nbusersudo 密码, 因此虽然该解决方案在笔记本服务器的终端中适用于 ipython,但它不能使 jupyter 工作。

我最后的工作解决方案是使用笔记本服务器的终端来命令ln -s /usr/lib64/MR0-3.3.0/R-3.3.0/lib/R/lib/* ~/anaconda3_410/lib/

然后,当你输入%load_ext rpy2.ipython时,你会得到一个错误ImportError ..../libreadline.so.6: undefined symbol: PC。在%load_ext rpy2.ipython.

前输入import readline即可解决

最后,您可以为 %R xxx 加载带有一些警告信息的 rpy2.ipython

希望对您有所帮助。