1

我正在使用 R markdown 和 reticulate 包。在一个块中运行一个简单的 2 行 python 代码后,我无法使用 py$x 函数在 R 块中使用 python 变量。我收到以下错误:“错误:对象 'py ' 未找到”

我已经尝试过另一个函数 py_to_r 用于将 python 对象转换为 R,但即使这样也不起作用,因为它会抛出一个找不到对象的错误。我还包括 python 配置:

    ```{r}
    py_config()
    ```


python:         C:\Users\chatsh02\AppData\Local\CONTIN~1\ANACON~1\python.exe
libpython:      C:/Users/chatsh02/AppData/Local/CONTIN~1/ANACON~1/python36.dll
pythonhome:     C:\Users\chatsh02\AppData\Local\CONTIN~1\ANACON~1
version:        3.6.3 |Anaconda custom (64-bit)| (default, Oct 15 2017, 03:27:45) [MSC v.1900 64 bit (AMD64)]
Architecture:   64bit
numpy:          C:\Users\chatsh02\AppData\Local\CONTIN~1\ANACON~1\lib\site-packages\numpy
numpy_version:  1.14.2

python versions found: 
 C:\Users\chatsh02\AppData\Local\CONTIN~1\ANACON~1\python.exe
 C:\Users\chatsh02\AppData\Local\Continuum\anaconda3\python.exe
 C:\Users\chatsh02\AppData\Local\Continuum\anaconda3\envs\r-reticulate\python.exe


```{r}
library(reticulate)
use_virtualenv('r-reticulate')
py_available(TRUE)
```

```{python}
a=7
print(a)
```

```{r}
py$a
```

预期的结果应该是我应该得到值为 7 的 R 变量 a。实际结果:错误:找不到对象 'py'

4

3 回答 3

3

我得到这个是因为我忘记library(reticulate)在我的 Rmarkdown 文档中运行。看起来你有它,但只要确保你真的运行那条线。

于 2021-02-10T19:42:11.730 回答
0

一定要在同一个块中调用网状包,这对我有用。

library(reticulate)
py$a
于 2021-08-30T21:09:09.010 回答
0

你只需要编织你的文件,然后一切正常。执行单个块将不起作用,只需将它们编织成 HTML、PDF 或其他内容。

在此处输入图像描述

于 2019-03-27T13:40:03.437 回答