python - 在 RMarkdown 中,网状结构不在 R/Python 单元或 Python/Python 单元之间共享状态

标签 python r r-markdown reticulate

我正在尝试根据设置说明让 ReticulateRMarkdown 中工作。但是,我无法在单独的 Python 单元或 Python 和 R 单元之间共享状态,正如文档所指出的那样,我应该能够这样做。这是我的设置和输出:

单元格 1(设置):

{r}
library(reticulate)
path_to_python <- "/Users/User/anaconda3/bin/python"
use_python(path_to_python)
knitr::knit_engines$set(python = reticulate::eng_python)
py_available(initialize = TRUE)

输出:

[1] TRUE

单元格 2(在 Python 中设置变量):

{python}
x = 2

单元格 3(尝试访问 R 中的 Python 变量):

{r}
py$x

输出:

Error in py_get_attr_impl(x, name, silent) : AttributeError: module '__main__' has no attribute 'x'

单元格 4(在 R 中设置变量):

{r}
x <- 2

单元格 5(尝试在 Python 中访问 R 变量):

{python}
r.x

输出:

Traceback (most recent call last):
  File "/var/folders/2b/dgy6vs4n3lbfy2xqwc3gqq9m0000gn/T/RtmpTqIR6P/chunk-code-108b44104ec28.txt", line 1, in <module> r.x NameError: name 'r' is not defined

单元格 6(尝试访问后续 Python 单元格中的前一个 Python 变量):

{python}
x

输出:

Traceback (most recent call last):
  File "/var/folders/2b/dgy6vs4n3lbfy2xqwc3gqq9m0000gn/T/RtmpTqIR6P/chunk-code-108b44520d158.txt", line 1, in <module> x NameError: name 'x' is not defined

如有任何帮助或建议,我们将不胜感激!我已经尝试将 reticulate 指向不同的 Conda 环境和 Python 安装,但没有成功。谢谢!

最佳答案

我想我已经弄明白了。我误解了网状文档,认为它意味着我可以在 RStudio 中以交互方式在 Python 单元之间共享状态。在仔细阅读 Github 上的未解决问题后,RStudio 集成似乎仍在进行中。当直接使用 knitr 编织文档时,我得到了单元格之间共享状态的预期行为。

关于python - 在 RMarkdown 中,网状结构不在 R/Python 单元或 Python/Python 单元之间共享状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49324289/

相关文章:

在 R Markdown SQL block 中替换不带引号的变量

r - 将不同列表的子列表组合成数据框列表

r - 如何让 `pkgdown` 在小插图中使用图形编号和交叉引用?

在单个 Markdown 文件中将多个 R 脚本呈现为 Markdown

python - 如何在 python 3 中从 csv 创建自定义列表?

Python:包中的 'Private' 模块

python - 使用字典映射数据帧索引

R ifelse 匹配

r - 使用循环在 R markdown 中生成选项卡

python - __unicode__() 不返回字符串