Можете ли вы установить пакет Python через R - Reticulate

Я собираюсь создать интерфейс Python в R с пакетом Reticulate. Чтобы получить доступ к функциям Python в R, необходимо установить соответствующие пакеты Python.

Мне пришло в голову два вопроса:

1) Если вы используете пакет reticulate, нужно ли устанавливать пакет Anaconda? Или достаточно установить только пакеты python?

2) Возможно ли установить пакеты Python в R, аналогично install.packages("r_package")?

У кого-нибудь есть опыт работы с этой темой? Заранее спасибо!

1 ответ

Решение

1) Пакет R reticulate может работать с Python по умолчанию или с Anaconda2 или же Anaconda3, Если вы хотите, чтобы Anaconda работала с R, вам сначала нужно установить Anaconda. После установки вы вызываете library(reticulate) и запустить py_config() или же reticulate::py_discover_config(), это даст вам список путей и среды, используемой установкой Python. Затем, когда вы знаете путь к Python, вы добавляете такую ​​строку use_python("/opt/miniconda2/bin/python"), сразу после library(reticulate) и вы в бизнесе.

2) чтобы установить пакеты Python, чтобы R (или сетчатка) могла их видеть, вы должны установить их как обычные пакеты Python с терминала или консоли; не R. Пример: conda install numpy установить NumPy или conda install scipy установить scipy и так далее.

Я просто делаю все это в контейнере Docker rocker/rstudio, Это должно быть проще в стандартной ОС.

Вот пошаговые инструкции:

Ура!

Я добавлю немного нюансов к предыдущему ответу.

Как сказал @f0nzie, Anaconda - это не пакет, а менеджер пакетов. В идеале вы должны создать среду, используя Anaconda, чтобы помочь с управлением пакетами и контролем версий. Документация по средам conda находится здесь.

Теперь вы можете установить пакеты python в ваш пакет anaconda в R. Это возможно с помощью reticulate::conda_install(envname, packages), Документация для conda_install() можно найти здесь.

Если вам нужна конкретная версия модулей Python, поместите == после имени модуля, например, следующее установит определенные версии 3 модулей с помощью pip:

reticulate::conda_install(c("PyMuPDF==1.14.20", "PyPDF2==1.26.0", "reportlab==3.5.23"),
                            envname = "myenv", pip = TRUE)
Другие вопросы по тегам