rmarkdown 中的 python(网状)

问题描述 投票:0回答:1

我正在尝试在 rmarkdown 文档中添加 python 块。我安装了包 reticulate 然后这是我的文档:

```{r, message=FALSE, warning=FALSE, echo = FALSE}
  library(reticulate)
```

```{python, echo = FALSE, eval = FALSE}
a=1
a
#import numpy as np
#import matplotlib.pyplot as plt

## evenly sampled time at 200ms intervals
#t = np.arange(0., 5., 0.2)

## red dashes, blue squares and green triangles
#plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
#plt.show()
```

但是,我在编织文档时遇到此错误:(请注意,运行第二个块时会发生错误)

label: unnamed-chunk-1 (with options) 
List of 3
 $ message: logi FALSE
 $ warning: logi FALSE
 $ echo   : logi FALSE


  |                                                                       
  |....                                                             |   6%
  ordinary text without R code


  |                                                                       
  |......                                                           |   9%
label: unnamed-chunk-2 (with options) 
List of 3
 $ echo  : logi FALSE
 $ eval  : logi FALSE
 $ engine: chr "python"

Error in py_module_import(module, convert = convert) : 
  ModuleNotFoundError: No module named 'rpytools'
Calls: <Anonymous> ... remap_output_streams -> import -> py_module_import -> .Call

还补充说,我在 https://github.com/rstudio/reticulate 上没有找到任何相关信息https://rstudio.github.io/reticulate/articles/r_markdown.html

我有 knitr 版本 1.20,高于 1.18,因此引擎配置应该是自动的。

python r r-markdown reticulate
1个回答
1
投票

您遇到的差异似乎源于版本不一致,特别是涉及 RStudio。看来与导入 Python 包和在 R 中执行 Python 块相关的功能仅在 RStudio 1.2 及更高版本中受支持。这种限制似乎影响了 reticulate 与 R Notebooks 的无缝集成,阻碍了编织过程。

根据从网状文档中收集到的见解,RStudio 1.2 预览版扩展了对在 R Notebook 中执行 Python 块的支持。插图强调了这一重要的增强功能,强调了其仅在预览版本中可用,与稳定迭代不同。

在 RStudio 版本 1.1.53 中运行代码片段时,正如您所指出的,“ModuleNotFound”错误的出现与此版本限制一致,从而阻碍了编织过程。

但是,过渡到 RStudio 1.2.1139 预览版会产生预期的结果,促进在 R 环境中无缝执行 Python 代码。提供的演示展示了该功能的功效,体现在 R 中创建 Python 解释器,支持执行 Python 代码片段并随后生成图形输出。

鉴于此版本依赖性,升级到 RStudio 1.2 或更高版本对于充分利用 R Notebook 中 reticulate 的全部功能、确保 Python 和 R 功能之间的和谐集成至关重要。

© www.soinside.com 2019 - 2024. All rights reserved.