Невозможно импортировать модули Python в rmarkdown

Я пытаюсь импортировать некоторые модули 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 
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
1 177
1

Ответы 1

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

Обновление до последней версии CRAN у меня не сработало, но обновление до последней версии Github сработало. Я не знаю почему. Кому нужно, может запустить: devtools::install_github("rstudio/reticulate")

CoderGuy123 20.10.2020 05:00

Другие вопросы по теме