питон в rmarkdown (сетчатый) - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь добавить кусок Python в документ rmarkdown.Я установил пакет 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, следовательно, конфигурация двигателя должна быть автоматической.

1 Ответ

0 голосов
/ 25 ноября 2018

Это, вероятно, вызвано использованием версии RStudio ниже 1.2.Он хорошо скрыт на страницах reticulate, но на самом деле некоторые аспекты импорта пакетов Python и запуска фрагментов Python, по-видимому, поддерживаются только в RStudio версии 1.2 и выше - то есть не в текущем стабильном выпуске RStudio, но предварительный просмотр, который вы должны загрузить и установить отдельно.

Вот что они пишут в виньетке:

Обратите внимание, что RStudio v1.2 предварительный выпуск включает поддержку использования reticulate для выполнения фрагментов Python в R Notebooks.Дополнительную информацию см. В статье RStudio IDE Tools для сетчатки .

Возможно, из-за этого при запуске вашего кода в RStudio 1.1.53 я получаю ошибки "ModuleNotFound", подобные вамсделать, и они мешают вязанию.

При запуске в предварительном выпуске RStudio 1.2.1139 все выглядит так:

Reticulate 1.10 REPL -- A Python interpreter in R.
>>> a=1
>>> a
1
>>> 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^')
[<matplotlib.lines.Line2D object at 0x000000001C2EDBE0>, <matplotlib.lines.Line2D object at 0x000000001DA99978>, <matplotlib.lines.Line2D object at 0x000000001DA99D30>]
>>> plt.show()
>>> plt.savefig("test.png")
>>> 

test.png

...