Я пытаюсь импортировать некоторые модули Python из созданного мной виртуального окружения в документе Rmarkdown. Я новичок в Python, поэтому я просто пройдусь по шагам моей настройки.
(1) Я создал новый виртуальный сервер под названием r-reticulate в корневом каталоге по умолчанию ~/.virtualenvs, используя
virtualenv -p /usr/bin/python3 r-reticulate
(2) После активации env я установил несколько модулей с помощью pip. Ниже приведен список установленных пакетов:
$ pip list
Package Version
--------------- -------
cycler 0.10.0
kiwisolver 1.0.1
matplotlib 3.0.2
numpy 1.16.1
pandas 0.24.1
pip 19.0.3
pkg-resources 0.0.0
pyparsing 2.3.1
python-dateutil 2.8.0
pytz 2018.9
setuptools 40.8.0
six 1.12.0
virtualenv 16.4.1
wheel 0.33.1
(3) Теперь к моему коду R. У меня есть только 2 фрагмента кода. Первое:
```{r}
library(reticulate)
use_virtualenv(virtualenv = "r-reticulate")
```
и второй:
```{python}
import pandas as pd
import numpy as np
```
Первый фрагмент кода выполняется без ошибок, но второй возвращает:
ImportError: No module named matplotlib
Я убедился, что среда r-reticulate работает, активировав ее и импортировав эти модули через терминал.
Sesssion Info
R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.1 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/atlas/libblas.so.3.10.3
LAPACK: /usr/lib/x86_64-linux-gnu/atlas/liblapack.so.3.10.3
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] reticulate_1.10 ggplot2_3.1.0






Покопавшись еще, я заметил, что у меня нет последней версии reticulate. Обновление до reticulate_1.9, похоже, устранило ошибку импорта модуля. Мне удалось импортировать другие пакеты из моей r-reticulate среды, поэтому я считаю, что теперь она use_virtualenv(virtualenv = "r-reticulate") работает правильно.
Обновление до последней версии CRAN у меня не сработало, но обновление до последней версии Github сработало. Я не знаю почему. Кому нужно, может запустить:
devtools::install_github("rstudio/reticulate")