根据设置说明,我正在尝试让Reticulate在RMarkdown中工作。但是,我无法在单独的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安装,但没有成功。谢谢!
发布于 2018-03-23 01:57:42
我想我已经弄明白了。我误解了网状文档,认为这意味着我可以在RStudio中交互地在Python计算单元之间共享状态。在仔细阅读了Github上的开放问题后,似乎RStudio集成仍在进行中。当直接使用cells编织文档时,我得到了在单元之间共享状态的预期行为。
发布于 2019-02-06 03:29:14
这在当前的RStudio中是固定的,例如1.2.1114。但是,如果您像我一样坚持使用PythonServerPro1.1.456,一个变通办法是使用reticulate::repl_python()通过复制粘贴到RStudio控制台来运行python块。如果您需要在两者之间运行R块,您可以再次关闭并打开控制台-状态将保持不变。当你完成修改后,你就可以毫无问题地编织整个文件了。
https://stackoverflow.com/questions/49324289
复制相似问题